Пример #1
0
  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"));
  }
Пример #2
0
  public void testSetFieldValue() throws Exception {
    String[] fields = new String[] {"name=testName", "descriptorType=testType"};
    DescriptorSupport descriptor = new DescriptorSupport(fields);
    assertEquals("testName", descriptor.getFieldValue("name"));
    descriptor.setField("name", "newName");
    assertEquals("newName", descriptor.getFieldValue("name"));
    descriptor.setField("NAME", "newNAME");
    assertEquals("newNAME", descriptor.getFieldValue("name"));

    boolean caught = false;
    try {
      descriptor.setField(null, "null");
    } catch (RuntimeOperationsException e) {
      caught = true;
    }
    assertTrue("Expected an exception for null name", caught);

    caught = false;
    try {
      descriptor.setField("", "empty");
    } catch (RuntimeOperationsException e) {
      caught = true;
    }
    assertTrue("Expected an exception for empty name", caught);

    // This is legal?
    descriptor.setField(" ", "blank");
    assertEquals("blank", descriptor.getFieldValue(" "));

    descriptor.setField("newField", "newValue");
    assertEquals("newValue", descriptor.getFieldValue("newField"));
  }
Пример #3
0
  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());
  }
Пример #4
0
 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());
   }
 }
Пример #5
0
  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());
  }
Пример #6
0
  public void testGetFieldValue() throws Exception {
    String[] fields = new String[] {"name=testName", "descriptorType=testType"};
    DescriptorSupport descriptor = new DescriptorSupport(fields);
    assertEquals("testName", descriptor.getFieldValue("name"));
    assertTrue(
        "Field names are not case sensitive", "testName".equals(descriptor.getFieldValue("NAME")));
    assertTrue(
        "Non existent field should be null", descriptor.getFieldValue("nonExistent") == null);

    boolean caught = false;
    try {
      descriptor.getFieldValue(null);
    } catch (RuntimeOperationsException e) {
      caught = true;
    }
    assertTrue("Expected an exception for null name", caught);

    caught = false;
    try {
      descriptor.getFieldValue("");
    } catch (RuntimeOperationsException e) {
      caught = true;
    }
    assertTrue("Expected an exception for empty name", caught);

    // This is legal?
    assertTrue("Blank field name is allowed", descriptor.getFieldValue(" ") == null);
  }
Пример #7
0
  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());
  }