📄 testelement.java
字号:
element.addContent("the third part");
assertEquals("incorrect string value", "the first partthe second partthe third part", element.getText());
//test that add content null clears the content
try {
String data = null;
element.addContent(data);
List content = element.getContent();
}
catch (IllegalAddException e) {
}
catch (NullPointerException e) {
fail("didn't handle null String content");
}
}
/**
* Test getContent by child name.
*/
public void test_TCM__OrgJdomElement_getChild_String() {
Element element = new Element("element");
Element child = new Element("child");
Element childNS = new Element("child", Namespace.getNamespace("urn:foo"));
element.addContent(child);
assertEquals("incorrect child returned", element.getChild("child"), child);
}
/**
* Test getContent by child name and namespace.
*/
public void test_TCM__OrgJdomElement_getChild_String_OrgJdomNamespace() {
Element element = new Element("element");
Element child = new Element("child");
Namespace ns = Namespace.getNamespace("urn:foo");
Element childNS = new Element("child", ns);
element.addContent(child);
element.addContent(childNS);
assertEquals("incorrect child returned", element.getChild("child", ns), childNS);
}
/**
* Test getCopy with only the name argument. Since the copy is just a clone,
* the clone test covers most of the testing.
*/
public void test_TCM__OrgJdomElement_getCopy_String() {
/** No op because the method is deprecated
Element element = new Element("element", Namespace.getNamespace("urn:foo"));
element.addContent("text");
Element newElement = element.getCopy("new");
assertEquals("incorrect name", "new", newElement.getName());
assertEquals("incorrect namespace", Namespace.NO_NAMESPACE, newElement.getNamespace());
assertEquals("incorrect content", "text", newElement.getText());
*/
}
/**
* Test getCopy with the name and namespace arguments.
* Since the copy is just a clone, the clone test
* covers most of the testing.
*/
public void test_TCM__OrgJdomElement_getCopy_String_OrgJdomNamespace() {
/** No op because the method is deprecated
Element element = new Element("element", Namespace.getNamespace("urn:foo"));
element.addContent("text");
Namespace ns = Namespace.getNamespace("urn:test:new");
Element newElement = element.getCopy("new", ns);
assertEquals("incorrect name", "new", newElement.getName());
assertEquals("incorrect namespace", ns, newElement.getNamespace());
assertEquals("incorrect content", "text", newElement.getText());
*/
}
/**
* Test test that a child element can return it's parent.
*/
public void test_TCM__OrgJdomElement_getParent() {
Element element = new Element("el");
Element child = new Element("child");
element.addContent(child);
assertEquals("parent not found", element, child.getParent());
}
/**
* Test addAttribute with an Attribute
*/
public void test_TCM__OrgJdomElement_setAttribute_OrgJdomAttribute() {
Element element = new Element("el");
Attribute att = new Attribute("name", "first");
element.setAttribute(att);
assertEquals("incorrect Attribute returned", element.getAttribute("name"), att);
//update the value
Attribute att2 = new Attribute("name", "replacefirst");
element.setAttribute(att2);
assertEquals("incorrect Attribute value returned", "replacefirst", element.getAttribute("name").getValue());
//test with bad data
try {
element.setAttribute(null);
fail("didn't catch null attribute");
}
catch (IllegalArgumentException e) {
}
catch (NullPointerException e) {
}
}
/**
* Test addAttribute with a supplied name and value
*/
public void test_TCM__OrgJdomElement_setAttribute_String_String__invalidCharacters() {
final Element element = new Element("el");
//try with null name
try {
element.setAttribute(null, "value");
fail("didn't catch null attribute name");
}
catch (final IllegalArgumentException ignore) {
}
catch (NullPointerException ignore) {
}
//try with null value
try {
element.setAttribute("name2", null);
fail("didn't catch null attribute value");
}
catch (IllegalArgumentException e) {
}
catch (NullPointerException e) {
}
//try with bad characters
try {
element.setAttribute("\n", "value");
fail("didn't catch bad characters in attribute name");
}
catch (IllegalArgumentException e) {
}
try {
element.setAttribute("name2", "" + (char) 0x01);
fail("didn't catch bad characters in attribute value");
}
catch (IllegalArgumentException e) {
}
}
/**
* Test addAttribute with a supplied name and value
*/
public void test_setAttribute_String_String__attributeTypes() {
test_setAttribute_String_String__attributeType(Attribute.UNDECLARED_TYPE);
test_setAttribute_String_String__attributeType(Attribute.CDATA_TYPE);
test_setAttribute_String_String__attributeType(Attribute.ID_TYPE);
test_setAttribute_String_String__attributeType(Attribute.IDREF_TYPE);
test_setAttribute_String_String__attributeType(Attribute.IDREFS_TYPE);
test_setAttribute_String_String__attributeType(Attribute.ENTITY_TYPE);
test_setAttribute_String_String__attributeType(Attribute.ENTITIES_TYPE);
test_setAttribute_String_String__attributeType(Attribute.NMTOKEN_TYPE);
test_setAttribute_String_String__attributeType(Attribute.NMTOKENS_TYPE);
test_setAttribute_String_String__attributeType(Attribute.NOTATION_TYPE);
test_setAttribute_String_String__attributeType(Attribute.ENUMERATED_TYPE);
}
/**
* Test setAttribute with a supplied name and value
*/
private void test_setAttribute_String_String__attributeType(final int attributeType) {
final Element element = new Element("el");
final String attributeName = "name";
final String attributeValue = "value";
final String attributeNewValue = "newValue";
final Attribute attribute = new Attribute(attributeName, attributeValue, attributeType);
// add attribute to element
element.setAttribute(attribute);
final Attribute foundAttribute = element.getAttribute(attributeName);
assertNotNull("no Attribute found", foundAttribute);
assertEquals("incorrect Attribute name returned", attributeName, foundAttribute.getName());
assertEquals("incorrect Attribute value returned", attributeValue, foundAttribute.getValue());
assertEquals("incorrect Attribute type returned", attributeType, foundAttribute.getAttributeType());
//update the value
element.setAttribute(attributeName, attributeNewValue);
final Attribute changedAttribute = element.getAttribute(attributeName);
assertNotNull("no Attribute found", changedAttribute);
assertEquals("incorrect Attribute name returned", attributeName, changedAttribute.getName());
assertEquals("incorrect Attribute value returned", attributeNewValue, changedAttribute.getValue());
assertEquals("incorrect Attribute type returned", attributeType, changedAttribute.getAttributeType());
}
/**
* Test addAttribute with a supplied name and value
*/
public void test_setAttribute_String_String_String__attributeTypes() {
test_setAttribute_String_String_String__attributeType(Attribute.UNDECLARED_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.CDATA_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.ID_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.IDREF_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.IDREFS_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.ENTITY_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.ENTITIES_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.NMTOKEN_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.NMTOKENS_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.NOTATION_TYPE);
test_setAttribute_String_String_String__attributeType(Attribute.ENUMERATED_TYPE);
}
/**
* Test setAttribute with a supplied name and value
*
* @author Victor Toni
*/
private void test_setAttribute_String_String_String__attributeType(final int attributeType) {
try {
final Namespace defaultNamespace = Namespace.getNamespace(null, "http://test.org/default");
test_setAttribute_String_String_String__attributeType(defaultNamespace, attributeType);
fail("didn't catch empty prefix for attribute ");
}
catch( final IllegalNameException ignore) {
}
final Namespace testNamespace = Namespace.getNamespace("test", "http://test.org/test");
test_setAttribute_String_String_String__attributeType(testNamespace, attributeType);
}
/**
* Test setAttribute with a supplied name, namespace and value
*
* @author Victor Toni
*/
private void test_setAttribute_String_String_String__attributeType(final Namespace namespace, final int attributeType) {
final Element element = new Element("el");
final String attributeName = "name";
final String attributeValue = "value";
final String attributeNewValue = "newValue";
final Attribute attribute = new Attribute(attributeName, attributeValue, attributeType, namespace);
// add attribute to element
element.setAttribute(attribute);
final Attribute foundAttribute = element.getAttribute(attributeName, namespace);
assertNotNull("no Attribute found", foundAttribute);
assertEquals("incorrect Attribute name returned", attributeName, foundAttribute.getName());
assertEquals("incorrect Attribute value returned", attributeValue, foundAttribute.getValue());
assertEquals("incorrect Attribute type returned", attributeType, foundAttribute.getAttributeType());
//update the value
element.setAttribute(attributeName, attributeNewValue, namespace);
final Attribute changedAttribute = element.getAttribute(attributeName, namespace);
assertNotNull("no Attribute found", changedAttribute);
assertEquals("incorrect Attribute name returned", attributeName, changedAttribute.getName());
assertEquals("incorrect Attribute value returned", attributeNewValue, changedAttribute.getValue());
assertEquals("incorrect Attribute type returned", attributeType, changedAttribute.getAttributeType());
}
/**
* Test that attributes are added correctly as a list
*/
public void test_TCM__OrgJdomElement_setAttributes_List() {
Element element = new Element("element");
Attribute one = new Attribute("one", "value");
Attribute two = new Attribute("two", "value");
Attribute three = new Attribute("three", "value");
ArrayList list = new ArrayList();
list.add(one);
list.add(two);
list.add(three);
//put in an attribute that will get blown away later
element.setAttribute(new Attribute("type", "test"));
element.setAttributes(list);
assertEquals("attribute not found", one, element.getAttribute("one"));
assertEquals("attribute not found", two, element.getAttribute("two"));
assertEquals("attribute not found", three, element.getAttribute("three"));
assertNull("attribute should not have been found", element.getAttribute("type"));
//now try to add something that isn't an attribute which should still add those
//attributes added before the mistake.
Element bogus = new Element("bogus");
Attribute four = new Attribute("four", "value");
ArrayList newList = new ArrayList();
newList.add(four);
newList.add(bogus);
try {
element.setAttributes(newList);
fail("didn't catch bad data in list");
}
catch (IllegalAddException e) {
}
//should be an atomic operation so the original state should be preserved
assertEquals("wrong number of attributes after failed add", 3, element.getAttributes().size());
assertEquals("attribute not found", one, element.getAttribute("one"));
assertEquals("attribute not found", two, element.getAttribute("two"));
assertEquals("attribute not found", three, element.getAttribute("three"));
try {
element.setAttributes(null);
List attList = element.getAttributes();
assertTrue("null didn't clear attributes", attList.size() == 0);
}
catch (IllegalArgumentException e) {
fail("didn't handle null String content");
}
catch (NullPointerException e) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -