mx4j/src/test/test/javax/management/modelmbean DescriptorSupportTest.java,1.15,1.16
Simone Bordet <[email protected]>
| Newsgroups | gmane.comp.java.mx4j.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/mx4j/mx4j/src/test/test/javax/management/modelmbean In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16956/src/test/test/javax/management/modelmbean Modified Files: DescriptorSupportTest.java Log Message: Cosmetics: clean up of imports and unused variables and dummy code Index: DescriptorSupportTest.java =================================================================== RCS file: /cvsroot/mx4j/mx4j/src/test/test/javax/management/modelmbean/DescriptorSupportTest.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DescriptorSupportTest.java 20 Nov 2003 22:06:36 -0000 1.15 --- DescriptorSupportTest.java 22 Mar 2004 13:28:44 -0000 1.16 *************** *** 15,19 **** import java.util.List; import java.util.Set; - import javax.management.Descriptor; import javax.management.RuntimeOperationsException; --- 15,18 ---- *************** *** 21,31 **** import javax.management.modelmbean.XMLParseException; - import junit.framework.Assert; import test.MX4JTestCase; /** - * - * - * @see * @author <a href="mailto:[email protected]">Sandeep Pathak</a> * @version $Revision$ --- 20,26 ---- *************** *** 34,512 **** public class DescriptorSupportTest extends MX4JTestCase { ! /** Creates a new instance of DescriptorSupportTest */ ! public DescriptorSupportTest(String s) ! { ! super(s); ! } ! public void setUp() throws Exception ! { ! super.setUp(); ! } ! public void tearDown() throws Exception ! { ! super.tearDown(); ! } ! public void testValid() throws Exception ! { ! // Create a valid Descriptor object ! String[] attributes = {"name=mytest", "descriptorType=MBean", "role=constructor"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(attributes); ! } ! catch (RuntimeOperationsException ex) ! { ! fail("Unable to create Descriptor support object with attributes: " + attributes); ! } ! // Try a different constructor ! String[] names = {"name", "descriptorType", "role", "persistPolicy", "persistPeriod"}; ! String[] values = {"mytest", "MBean", "constructor", "Never", "1"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! } ! catch (RuntimeOperationsException ex) ! { ! fail("Unable to create Descriptor support object"); ! } ! // Create an invalid Descriptor object. Check that persistPolicy ! // if not case sensitive ! names = new String[] {"name", "descriptorType", "persistPolicy"}; ! values = new String[] {"mytest", "MBean", "never"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! } ! catch (RuntimeOperationsException ex) ! { ! // No exception was thrown i.e. error ! fail("Unable to create Descriptor support object with never as persistPolicy"); ! } ! } ! public void testInvalid() throws Exception ! { ! // Create an invalid Descriptor object. Check persist policy ! String[] names = {"name", "descriptorType", "role", "persistPolicy"}; ! String[] values = {"mytest", "MBean", "constructor", "Something"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! // No exception was thrown i.e. error ! fail("Descriptor support object created with invalid attributes"); ! } ! catch (RuntimeOperationsException ex) {} ! // Create an invalid Descriptor object. Check persistPeriod ! // Persist period should be bigger or equal than -1 ! names = new String [] {"name", "descriptorType", "persistPolicy", "persistPeriod"}; ! values = new String [] {"mytest", "MBean", "Never", "-2"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! // No exception was thrown i.e. error ! fail("Descriptor support object created with invalid persistPeriod"); ! } ! catch (RuntimeOperationsException ex) {} ! // Create an invalid Descriptor object. Check visiblity ! // visibility should be between 1 and 4 ! names = new String [] {"name", "descriptorType", "visibility"}; ! values = new String [] {"mytest", "MBean", "0"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! // No exception was thrown i.e. error ! fail("Descriptor support object created with invalid visiblity"); ! } ! catch (RuntimeOperationsException ex) {} ! // Create an invalid Descriptor object. Check visiblity ! // visibility should be between 1 and 4 ! names = new String [] {"name", "descriptorType", "visibility"}; ! values = new String [] {"mytest", "MBean", "5"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! // No exception was thrown i.e. error ! fail("Descriptor support object created with invalid visiblity"); ! } ! catch (RuntimeOperationsException ex) {} ! } ! public void testIsValid() throws Exception ! { ! // Test for bug #686306 ! String[] names = {"name", "descriptorType","persistPolicy", "persistPeriod"}; ! String[] values = {"test", "mbean", "AlwaYs", "-1"}; ! DescriptorSupport ds = new DescriptorSupport(names, values); ! assertTrue(ds.isValid()); ! } ! public void testServerityField() throws Exception ! { ! // Test for bug #744423 and #775742 ! String[] names = {"name", "descriptorType","severity"}; ! String[] values = {"test", "mbean", "0"}; ! try ! { ! DescriptorSupport ds = new DescriptorSupport(names, values); ! assertTrue(ds.isValid()); ! names = new String[] {"name", "descriptorType","severity"}; ! values = new String[] {"test", "mbean", "6"}; ! ds = new DescriptorSupport(names, values); ! assertTrue(ds.isValid()); ! } ! catch (RuntimeOperationsException e) ! { ! fail("Should not throw an exception"); ! } ! } ! public void testCaseInsensitiveFieldNames() throws Exception { ! String[] fields = { "descriptorType", "myField" }; ! Object[] values = { "MBean", "top secret" }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! Assert.assertTrue( ! "Expecting 'descriptorType' value to be 'mbean'", ! ((String)ds.getFieldValue("DESCRIPTORTYPE")).compareTo("MBean") == 0); ! Assert.assertTrue( ! "Expecting 'myField' value to be 'top secret'", ! ((String)ds.getFieldValue("MYfIELD")).compareTo("top secret") == 0); ! fields = new String[] { "name", "descriptorType", "deleteMe" }; ! values = new String[] { "testCaseInsensitiveFieldNames", "MBean", "nothing of consequence" }; ! ds = new DescriptorSupport(fields, values); ! ds.removeField("DELETEmE"); ! String[] fieldnames = ds.getFields(); ! List fieldlist = new ArrayList(); ! for (int i = 0; i < fieldnames.length; i++) { fieldlist.add(fieldnames[i]); } ! int fieldcount = fieldnames.length; ! Assert.assertTrue( ! "Expecting 'deleteMe' to be gone", ! fieldcount == 2 && fieldlist.contains("deleteme") == false); ! } ! ! public void testCaseInsensitiveFieldValues() throws Exception { ! String[] fields = { "descriptorType", "persistPolicy", "log" }; ! String[] values = { "mBEAN", "oNuPDATE", "TRUE" }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! } ! public void testDefaultFieldValuesSize() throws Exception { ! DescriptorSupport ds = new DescriptorSupport(); ! Object[] fields = ds.getFieldValues(null); ! assertTrue("Expecting 0 length array", fields.length == 0); ! } ! public void testNullDescriptorCtorParam() throws Exception ! { ! DescriptorSupport ds = new DescriptorSupport((DescriptorSupport) null); ! assertTrue( ! "Expecting the descriptor to be empty", ! ds.getFields().length == 0); ! assertFalse("Expecting the descriptor to be invalid", ds.isValid()); ! } ! public void testNullStringCtorParam() throws Exception { ! try ! { ! DescriptorSupport ds = new DescriptorSupport((String) null); ! fail("Expecting RuntimeOperationsException"); ! } ! catch (RuntimeOperationsException x) ! { ! if (!(x.getTargetException() instanceof IllegalArgumentException)) ! { ! fail("Target exception should be IllegalArgumentException"); ! } ! assertTrue(true); // success ! } ! } ! public void testNullStringArrayCtorParm() throws Exception ! { ! String[] nullfields = null; ! DescriptorSupport ds = new DescriptorSupport(nullfields); ! Object[] fields = ds.getFieldValues(null); ! assertTrue("Expecting 0 length array", fields.length == 0); ! } ! public void testToXMLString() throws Exception ! { ! String[] fields = { "wine", "vineyard", "year", "price"}; ! Object[] values = { "Amarone", "Allegrini", "1996", new Integer(90) }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! String xml = ds.toXMLString(); ! assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! ! fields = new String[] { ! "wine=Amarone", ! "vineyard=Allegrini", ! "year=1996" ! }; ! ds = new DescriptorSupport(fields); ! xml = ds.toXMLString(); ! assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! ! public void testEmptyDescriptorToXMLString() throws Exception ! { ! DescriptorSupport ds = new DescriptorSupport(); ! assertTrue("DescriptorSupport is null", ds != null); ! String xml = ds.toXMLString(); ! assertTrue("Unexpected xml: " + xml, xml.compareTo("<Descriptor></Descriptor>") == 0); ! } ! ! public void testGetFieldsUnknownName() ! { ! String[] fields = { "wine", "vineyard", "year" }; ! String[] values = { "Amarone", "Allegrini", "1996" }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! Object fv = ds.getFieldValue("price"); ! assertTrue("field value not null", fv == null); ! fields = new String[] { "wine", "vineyard", "year", "price" }; ! Object[] fvs = ds.getFieldValues(fields); ! assertTrue("wrong number of values", fvs.length == fields.length); ! assertTrue("expecting null price value", fvs[3] == null); ! } ! ! public void testGetFieldsEmptyArray() ! { ! String[] fields = { "wine", "vineyard", "year" }; ! String[] values = { "Amarone", "Allegrini", "1996" }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! Object[] fvs = ds.getFieldValues(new String[0]); ! assertTrue("Expecting empty array", fvs.length == 0); ! } ! public void testRemoveField() ! { ! String[] fields = { "wine", "vineyard", "year", "price" }; ! Object[] values = { "Amarone", "Allegrini", "1996", new Integer(90)}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! assertTrue( ! "Expecting " + fields.length + " names", ! ds.getFieldNames().length == fields.length); ! ds.removeField("price"); ! assertTrue( ! "Expecting " + (fields.length - 1) + " names", ! ds.getFieldNames().length == (fields.length - 1)); ! } ! ! public void testRemoveNonexistentField() ! { ! String[] fields = { "wine", "vineyard", "year" }; ! String[] values = { "Amarone", "Allegrini", "1996" }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! try ! { ! ds.removeField("price"); ! } ! catch (Exception x) ! { ! fail("No exceptions should be thrown"); ! } ! } ! public void testRemoveNullField() ! { ! String[] fields = { "wine", "vineyard", "year" }; ! String[] values = { "Amarone", "Allegrini", "1996" }; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! try ! { ! ds.removeField(null); ! } ! catch (Exception x) ! { ! fail("No exceptions should be thrown"); ! } ! } ! public void testXMLStringCtor() throws Exception ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"bogus\" "); ! xmldescriptor.append("value=\"xyzzy\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! DescriptorSupport ds = new DescriptorSupport(xmldescriptor.toString()); ! String xml = ds.toXMLString(); ! assertTrue( ! "Descriptor from XML != Descriptor", ! descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! ! public void testXMLSpecialStringCtor() throws Exception ! { ! String[] fields = { "name=Lawrence", "nickname=(Larry)" }; ! DescriptorSupport ds = new DescriptorSupport(fields); ! assertTrue("DescriptorSupport from fields is null", ds != null); ! String xml = ds.toXMLString(); ! DescriptorSupport xmlds = new DescriptorSupport(xml); ! assertTrue("DescriptorSupport from XML is null", xmlds != null); ! assertTrue("Descriptors not equal", descriptorsEqual(ds, xmlds)); ! } ! ! public void testXMLPrimitiveCtor() throws Exception ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"boolean\" "); ! xmldescriptor.append("value=\"(java.lang.Boolean/true)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"byte\" "); ! xmldescriptor.append("value=\"(java.lang.Byte/127)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"char\" "); ! xmldescriptor.append("value=\"(java.lang.Character/k)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"short\" "); ! xmldescriptor.append("value=\"(java.lang.Short/4096)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"int\" "); ! xmldescriptor.append("value=\"(java.lang.Integer/16384)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"long\" "); ! xmldescriptor.append("value=\"(java.lang.Long/123456789)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"float\" "); ! xmldescriptor.append("value=\"(java.lang.Float/3.14)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"double\" "); ! xmldescriptor.append("value=\"(java.lang.Double/3.14e-10)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"null\" "); ! xmldescriptor.append("value=\"(null)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! DescriptorSupport ds = new DescriptorSupport(xmldescriptor.toString()); ! String xml = ds.toXMLString(); ! assertTrue( ! "Descriptor from XML != Descriptor", ! descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! ! public void testXMLClassCtor() throws Exception ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"date\" "); ! xmldescriptor.append( ! "value=\"(java.net.URL/http://mx4j.sourceforge.net)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! DescriptorSupport ds = new DescriptorSupport(xmldescriptor.toString()); ! String xml = ds.toXMLString(); ! assertTrue( ! "Descriptor from XML != Descriptor", ! descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! ! public void testBogusXMLCtor() ! { ! try ! { ! Descriptor d = new DescriptorSupport("<Descriptor><field name=</Descriptor>"); ! fail("Expecting XMLParseException"); ! } ! catch (XMLParseException x) ! { ! assertTrue(true); // success ! } ! catch (Exception x) ! { ! fail("Expecting XMLParseException not: " + x.toString()); ! } ! } ! ! public void testBogusXMLValueCtor() ! { ! try ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"bogus\" "); ! xmldescriptor.append("value=\"(java.lang.Byte/256)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! Descriptor d = new DescriptorSupport(xmldescriptor.toString()); ! fail("Expecting XMLParseException"); ! } ! catch (XMLParseException x) ! { ! assertTrue(true); // success ! } ! catch (Exception x) ! { ! fail("Expecting XMLParseException not: " + x.toString()); ! } ! } ! ! private boolean descriptorsEqual(Descriptor done, Descriptor dtwo) ! { ! Set namesone = new HashSet(Arrays.asList(done.getFieldNames())); ! Set namestwo = new HashSet(Arrays.asList(dtwo.getFieldNames())); ! if (!namesone.equals(namestwo)) return false; ! Iterator i = namesone.iterator(); ! while (i.hasNext()) ! { ! String field = (String) i.next(); ! Object vone = done.getFieldValue(field); ! Object vtwo = dtwo.getFieldValue(field); ! if ((vone == null && vtwo != null) || (vone != null && !vone.equals(vtwo))) ! { ! return false; ! } ! } ! return true; ! } } --- 29,416 ---- public class DescriptorSupportTest extends MX4JTestCase { + public DescriptorSupportTest(String s) + { + super(s); + } ! public void testValid() throws Exception ! { ! // Create a valid Descriptor object ! String[] attributes = {"name=mytest", "descriptorType=MBean", "role=constructor"}; ! new DescriptorSupport(attributes); ! // Try a different constructor ! String[] names = {"name", "descriptorType", "role", "persistPolicy", "persistPeriod"}; ! String[] values = {"mytest", "MBean", "constructor", "Never", "1"}; ! new DescriptorSupport(names, values); ! // Create a valid Descriptor object. Check that persistPolicy's value is not case sensitive ! names = new String[]{"name", "descriptorType", "persistPolicy"}; ! values = new String[]{"mytest", "MBean", "never"}; ! new DescriptorSupport(names, values); ! } ! public void testInvalid() throws Exception ! { ! // Create an invalid Descriptor object. Check persist policy ! String[] names = {"name", "descriptorType", "role", "persistPolicy"}; ! String[] values = {"mytest", "MBean", "constructor", "Something"}; ! try ! { ! new DescriptorSupport(names, values); ! fail("Descriptor support object created with invalid attributes"); ! } ! catch (RuntimeOperationsException ex) ! { ! } ! // Create an invalid Descriptor object. Check persistPeriod ! // Persist period should be bigger or equal than -1 ! names = new String[]{"name", "descriptorType", "persistPolicy", "persistPeriod"}; ! values = new String[]{"mytest", "MBean", "Never", "-2"}; ! try ! { ! new DescriptorSupport(names, values); ! fail("Descriptor support object created with invalid persistPeriod"); ! } ! catch (RuntimeOperationsException ex) ! { ! } ! // Create an invalid Descriptor object. Check visiblity ! // visibility should be between 1 and 4 ! names = new String[]{"name", "descriptorType", "visibility"}; ! values = new String[]{"mytest", "MBean", "0"}; ! try ! { ! new DescriptorSupport(names, values); ! fail("Descriptor support object created with invalid visiblity"); ! } ! catch (RuntimeOperationsException ex) ! { ! } ! // Create an invalid Descriptor object. Check visiblity ! // visibility should be between 1 and 4 ! names = new String[]{"name", "descriptorType", "visibility"}; ! values = new String[]{"mytest", "MBean", "5"}; ! try ! { ! new DescriptorSupport(names, values); ! fail("Descriptor support object created with invalid visiblity"); ! } ! catch (RuntimeOperationsException ex) ! { ! } ! } ! public void testIsValid() throws Exception ! { ! // Test for bug #686306 ! String[] names = {"name", "descriptorType", "persistPolicy", "persistPeriod"}; ! String[] values = {"test", "mbean", "AlwaYs", "-1"}; ! DescriptorSupport ds = new DescriptorSupport(names, values); ! assertTrue(ds.isValid()); ! } ! public void testSeverityField() throws Exception ! { ! // Test for bug #744423 and #775742 ! String[] names = {"name", "descriptorType", "severity"}; ! String[] values = {"test", "mbean", "0"}; ! DescriptorSupport ds = new DescriptorSupport(names, values); ! assertTrue(ds.isValid()); ! names = new String[]{"name", "descriptorType", "severity"}; ! values = new String[]{"test", "mbean", "6"}; ! ds = new DescriptorSupport(names, values); ! assertTrue(ds.isValid()); ! } ! public void testCaseInsensitiveFieldNames() throws Exception ! { ! String[] fields = {"descriptorType", "myField"}; ! Object[] values = {"MBean", "top secret"}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! assertEquals("Expecting 'descriptorType' value to be 'mbean'", (String)ds.getFieldValue("DESCRIPTORTYPE"), "MBean"); ! assertEquals("Expecting 'myField' value to be 'top secret'", (String)ds.getFieldValue("MYfIELD"), "top secret"); ! fields = new String[]{"name", "descriptorType", "deleteMe"}; ! values = new String[]{"testCaseInsensitiveFieldNames", "MBean", "nothing of consequence"}; ! ds = new DescriptorSupport(fields, values); ! ds.removeField("DELETEmE"); ! String[] fieldnames = ds.getFields(); ! List fieldlist = new ArrayList(); ! for (int i = 0; i < fieldnames.length; i++) fieldlist.add(fieldnames[i]); ! int fieldcount = fieldnames.length; ! assertEquals("Expecting 'deleteMe' to be gone", fieldcount, 2); ! assertFalse(fieldlist.contains("deleteme")); ! } ! public void testCaseInsensitiveFieldValues() throws Exception ! { ! String[] fields = {"descriptorType", "persistPolicy", "log"}; ! String[] values = {"mBEAN", "oNuPDATE", "TRUE"}; ! new DescriptorSupport(fields, values); ! } ! public void testDefaultFieldValuesSize() throws Exception ! { ! DescriptorSupport ds = new DescriptorSupport(); ! Object[] fields = ds.getFieldValues(null); ! assertTrue("Expecting 0 length array", fields.length == 0); ! } ! public void testNullDescriptorConstructorParam() throws Exception ! { ! DescriptorSupport ds = new DescriptorSupport((DescriptorSupport)null); ! assertNotNull(ds.getFields()); ! assertEquals("Expecting the descriptor to be empty", ds.getFields().length, 0); ! assertFalse("Expecting the descriptor to be invalid", ds.isValid()); ! } ! public void testNullStringConstructorParam() throws Exception ! { ! try ! { ! new DescriptorSupport((String)null); ! fail("Expecting RuntimeOperationsException"); ! } ! catch (RuntimeOperationsException x) ! { ! if (!(x.getTargetException() instanceof IllegalArgumentException)) ! fail("Target exception should be IllegalArgumentException"); ! } ! } ! public void testNullStringArrayCtorParm() throws Exception ! { ! String[] nullfields = null; ! DescriptorSupport ds = new DescriptorSupport(nullfields); ! Object[] fields = ds.getFieldValues(null); ! assertEquals("Expecting 0 length array", fields.length, 0); ! } + public void testToXMLString() throws Exception + { + String[] fields = {"wine", "vineyard", "year", "price"}; + Object[] values = {"Amarone", "Allegrini", "1996", new Integer(90)}; + DescriptorSupport ds = new DescriptorSupport(fields, values); + String xml = ds.toXMLString(); + assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! fields = new String[]{"wine=Amarone", "vineyard=Allegrini", "year=1996"}; ! ds = new DescriptorSupport(fields); ! xml = ds.toXMLString(); ! assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! public void testEmptyDescriptorToXMLString() throws Exception ! { ! DescriptorSupport ds = new DescriptorSupport(); ! String xml = ds.toXMLString(); ! assertEquals("Unexpected xml: " + xml, xml, "<Descriptor></Descriptor>"); ! } ! public void testGetFieldsUnknownName() ! { ! String[] fields = {"wine", "vineyard", "year"}; ! String[] values = {"Amarone", "Allegrini", "1996"}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! Object fv = ds.getFieldValue("price"); ! assertNull(fv); ! fields = new String[]{"wine", "vineyard", "year", "price"}; ! Object[] fvs = ds.getFieldValues(fields); ! assertEquals("wrong number of values", fvs.length, fields.length); ! assertNull(fvs[3]); ! } ! public void testGetFieldsEmptyArray() ! { ! String[] fields = {"wine", "vineyard", "year"}; ! String[] values = {"Amarone", "Allegrini", "1996"}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! Object[] fvs = ds.getFieldValues(new String[0]); ! assertEquals("Expecting empty array", fvs.length, 0); ! } ! public void testRemoveField() ! { ! String[] fields = {"wine", "vineyard", "year", "price"}; ! Object[] values = {"Amarone", "Allegrini", "1996", new Integer(90)}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! assertEquals("Expecting " + fields.length + " names", ds.getFieldNames().length, fields.length); ! ds.removeField("price"); ! assertEquals("Expecting " + (fields.length - 1) + " names", ds.getFieldNames().length, fields.length - 1); ! } ! public void testRemoveNonexistentFieldDoesntThrow() ! { ! String[] fields = {"wine", "vineyard", "year"}; ! String[] values = {"Amarone", "Allegrini", "1996"}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! ds.removeField("price"); ! } ! public void testRemoveNullField() ! { ! String[] fields = {"wine", "vineyard", "year"}; ! String[] values = {"Amarone", "Allegrini", "1996"}; ! DescriptorSupport ds = new DescriptorSupport(fields, values); ! ds.removeField(null); ! } ! public void testXMLStringConstructor() throws Exception ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"bogus\" "); ! xmldescriptor.append("value=\"xyzzy\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! DescriptorSupport ds = new DescriptorSupport(xmldescriptor.toString()); ! String xml = ds.toXMLString(); ! assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! public void testXMLSpecialStringConstructor() throws Exception ! { ! String[] fields = {"name=Lawrence", "nickname=(Larry)"}; ! DescriptorSupport ds = new DescriptorSupport(fields); ! String xml = ds.toXMLString(); ! DescriptorSupport xmlds = new DescriptorSupport(xml); ! assertTrue("Descriptors not equal", descriptorsEqual(ds, xmlds)); ! } ! public void testXMLPrimitiveConstructor() throws Exception ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"boolean\" "); ! xmldescriptor.append("value=\"(java.lang.Boolean/true)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"byte\" "); ! xmldescriptor.append("value=\"(java.lang.Byte/127)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"char\" "); ! xmldescriptor.append("value=\"(java.lang.Character/k)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"short\" "); ! xmldescriptor.append("value=\"(java.lang.Short/4096)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"int\" "); ! xmldescriptor.append("value=\"(java.lang.Integer/16384)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"long\" "); ! xmldescriptor.append("value=\"(java.lang.Long/123456789)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"float\" "); ! xmldescriptor.append("value=\"(java.lang.Float/3.14)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"double\" "); ! xmldescriptor.append("value=\"(java.lang.Double/3.14e-10)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"null\" "); ! xmldescriptor.append("value=\"(null)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! DescriptorSupport ds = new DescriptorSupport(xmldescriptor.toString()); ! String xml = ds.toXMLString(); ! assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! public void testXMLClassConstructor() throws Exception ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"date\" "); ! xmldescriptor.append("value=\"(java.net.URL/http://mx4j.sourceforge.net)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! DescriptorSupport ds = new DescriptorSupport(xmldescriptor.toString()); ! String xml = ds.toXMLString(); ! assertTrue("Descriptor from XML != Descriptor", descriptorsEqual(ds, (new DescriptorSupport(xml)))); ! } ! ! public void testBogusXMLConstructor() throws Exception ! { ! try ! { ! new DescriptorSupport("<Descriptor><field name=</Descriptor>"); ! fail("Expecting XMLParseException"); ! } ! catch (XMLParseException x) ! { ! } ! } ! ! public void testBogusXMLValueCtor() throws Exception ! { ! try ! { ! StringBuffer xmldescriptor = new StringBuffer(); ! xmldescriptor.append("<Descriptor>"); ! xmldescriptor.append("<field "); ! xmldescriptor.append("name=\"bogus\" "); ! xmldescriptor.append("value=\"(java.lang.Byte/256)\""); ! xmldescriptor.append(">"); ! xmldescriptor.append("</field>"); ! xmldescriptor.append("</Descriptor>"); ! new DescriptorSupport(xmldescriptor.toString()); ! fail("Expecting XMLParseException"); ! } ! catch (XMLParseException x) ! { ! } ! } ! ! private boolean descriptorsEqual(Descriptor done, Descriptor dtwo) ! { ! Set namesone = new HashSet(Arrays.asList(done.getFieldNames())); ! Set namestwo = new HashSet(Arrays.asList(dtwo.getFieldNames())); ! if (!namesone.equals(namestwo)) return false; ! Iterator i = namesone.iterator(); ! while (i.hasNext()) ! { ! String field = (String)i.next(); ! Object vone = done.getFieldValue(field); ! Object vtwo = dtwo.getFieldValue(field); ! if ((vone == null && vtwo != null) || (vone != null && !vone.equals(vtwo))) ! { ! return false; ! } ! } ! return true; ! } } ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click