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 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 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()); }
private void validate(String[] names, Object[] values, boolean valid) { DescriptorSupport descriptor = null; RuntimeOperationsException caught = null; boolean descriptorValid = false; try { descriptor = new DescriptorSupport(names, values); descriptorValid = descriptor.isValid(); } catch (RuntimeOperationsException e) { caught = e; } if (valid && caught != null) throw caught; assertEquals( "Expected " + valid + " for new Descriptor(String[], String[]) names=" + Arrays.asList(names) + " values=" + Arrays.asList(values), valid, descriptorValid); caught = null; descriptorValid = false; try { String[] fields = new String[names.length]; for (int i = 0; i < fields.length; i++) { if (values[i] == null) fields[i] = names[i] + "="; else fields[i] = names[i] + "=" + values[i].toString(); } descriptor = new DescriptorSupport(names, values); descriptorValid = descriptor.isValid(); } catch (RuntimeOperationsException e) { caught = e; } if (valid && caught != null) throw caught; assertEquals( "Expected " + valid + " for new Descriptor(String[], String[]) names=" + Arrays.asList(names) + " values=" + Arrays.asList(values), valid, descriptorValid); caught = null; descriptorValid = false; try { descriptor = new DescriptorSupport(); for (int i = 0; i < names.length; i++) descriptor.setField(names[i], values[i]); descriptorValid = descriptor.isValid(); } catch (RuntimeOperationsException e) { caught = e; } if (valid && caught != null) throw caught; assertEquals( "Expected " + valid + " for new Descriptor(String[], String[]) names=" + Arrays.asList(names) + " values=" + Arrays.asList(values), valid, descriptorValid); caught = null; descriptorValid = false; try { descriptor = new DescriptorSupport(); descriptor.setFields(names, values); descriptorValid = descriptor.isValid(); } catch (RuntimeOperationsException e) { caught = e; } if (valid && caught != null) throw caught; assertEquals( "Expected " + valid + " for new Descriptor(String[], String[]) names=" + Arrays.asList(names) + " values=" + Arrays.asList(values), valid, descriptorValid); }
public void testDefaultConstructor() throws Exception { DescriptorSupport descriptor = new DescriptorSupport(); assertTrue("Should be empty", descriptor.getFields().length == 0); assertFalse("Should not be valid", descriptor.isValid()); }