public void testRemove() throws Exception { String[] names = new String[] {"name", "descriptorType"}; Object[] values = new Object[] {"testName", "testType"}; DescriptorSupport descriptor = new DescriptorSupport(names, values); descriptor.removeField("name"); assertTrue("Should be one field", descriptor.getFields().length == 1); assertTrue("name should not be present", descriptor.getFieldValue("name") == null); assertEquals("testType", descriptor.getFieldValue("descriptorType")); descriptor = new DescriptorSupport(names, values); descriptor.removeField("NAME"); assertTrue("Should be one field", descriptor.getFields().length == 1); assertTrue("name should not be present", descriptor.getFieldValue("name") == null); assertEquals("testType", descriptor.getFieldValue("descriptorType")); descriptor = new DescriptorSupport(names, values); descriptor.removeField("notPresent"); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); descriptor.removeField(null); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); descriptor.removeField(""); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); }
public void testNameEqualsValueConstructor() throws Exception { String[] fields = new String[] {"name=testName", "descriptorType=testType"}; DescriptorSupport descriptor = new DescriptorSupport(fields); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); assertTrue("Should be valid", descriptor.isValid()); descriptor = new DescriptorSupport((String[]) null); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); descriptor = new DescriptorSupport(new String[0]); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); String[] nullName = new String[] {"name=testName", "=rubbish"}; boolean caught = false; try { descriptor = new DescriptorSupport(nullName); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for '=rubbish'", caught); // This is legal? String[] notEmptyName = new String[] {"name=testName", " =rubbish"}; descriptor = new DescriptorSupport(notEmptyName); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("rubbish", descriptor.getFieldValue(" ")); assertFalse("Should not be valid", descriptor.isValid()); }
public void testClone() throws Exception { String[] names = new String[] {"name", "descriptorType"}; Object[] values = new Object[] {"testName", "testType"}; DescriptorSupport descriptor = new DescriptorSupport(names, values); DescriptorSupport clone = (DescriptorSupport) descriptor.clone(); compareFields(descriptor.getFields(), clone.getFields()); }
public void testCopyConstructor() throws Exception { DescriptorSupport descriptor = new DescriptorSupport((DescriptorSupport) null); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); descriptor = new DescriptorSupport(descriptor); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); descriptor.setField("name", "testName"); descriptor.setField("descriptorType", "testType"); descriptor = new DescriptorSupport(descriptor); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); assertTrue("Should be valid", descriptor.isValid()); }
public void testSizeConstructor() throws Exception { DescriptorSupport descriptor = new DescriptorSupport(100); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); boolean caught = false; try { descriptor = new DescriptorSupport(-1); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for a negative size", caught); }
public void testNameEqualsValueConstructorError() throws Exception { try { String[] fields = new String[] {"name=testName", "descriptorType=testType", "another="}; DescriptorSupport descriptor = new DescriptorSupport(fields); assertTrue("Should be three fields", descriptor.getFields().length == 3); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); assertTrue("another should be null", descriptor.getFieldValue("another") == null); assertTrue("Should be valid", descriptor.isValid()); } catch (Exception e) { fail("FAILS IN RI: 'another=' should be valid according to the javadoc " + e.toString()); } }
public void testSerialization() throws Exception { String[] names = new String[] {"name", "descriptorType"}; Object[] values = new Object[] {"testName", "testType"}; DescriptorSupport descriptor = new DescriptorSupport(names, values); // Serialize it ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(descriptor); // Deserialize it ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bais); Object result = ois.readObject(); compareFields(descriptor.getFields(), ((DescriptorSupport) result).getFields()); }
public void testNamesValuesConstructor() throws Exception { String[] names = new String[] {"name", "descriptorType"}; Object[] values = new Object[] {"testName", "testType"}; DescriptorSupport descriptor = new DescriptorSupport(names, values); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); assertTrue("Should be valid", descriptor.isValid()); descriptor = new DescriptorSupport(new String[0], new Object[0]); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); boolean caught = false; try { descriptor = new DescriptorSupport(null, null); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for null names and values", caught); caught = false; try { descriptor = new DescriptorSupport(null, values); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for null names", caught); caught = false; try { descriptor = new DescriptorSupport(names, null); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for null values", caught); Object[] tooManyValues = new Object[] {"testName", "testType", "tooMany"}; caught = false; try { descriptor = new DescriptorSupport(names, tooManyValues); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for too many values", caught); Object[] tooFewValues = new Object[] {"testName"}; caught = false; try { descriptor = new DescriptorSupport(names, tooFewValues); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for too few values", caught); String[] nullName = new String[] {"name", null}; caught = false; try { descriptor = new DescriptorSupport(nullName, values); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for null name", caught); String[] emptyName = new String[] {"name", ""}; caught = false; try { descriptor = new DescriptorSupport(emptyName, values); } catch (RuntimeOperationsException e) { caught = true; } assertTrue("Expected an exception for empty name ", caught); // This is legal? String[] notEmptyName = new String[] {"name", " "}; descriptor = new DescriptorSupport(notEmptyName, values); assertTrue("Should be two fields", descriptor.getFields().length == 2); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue(" ")); assertFalse("Should not be valid", descriptor.isValid()); names = new String[] {"name", "descriptorType", "another"}; values = new Object[] {"testName", "testType", null}; descriptor = new DescriptorSupport(names, values); assertTrue("Should be three fields", descriptor.getFields().length == 3); assertEquals("testName", descriptor.getFieldValue("name")); assertEquals("testType", descriptor.getFieldValue("descriptorType")); assertTrue("another should be null", descriptor.getFieldValue("another") == null); assertTrue("Should be valid", descriptor.isValid()); }
public void testDefaultConstructor() throws Exception { DescriptorSupport descriptor = new DescriptorSupport(); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); }
public void testGetFields() throws Exception { String[] fields = new String[] {"name=testName", "descriptorType=testType"}; DescriptorSupport descriptor = new DescriptorSupport(fields); String[] getFields = descriptor.getFields(); compareFields(fields, getFields); }