1 /* 2 * Copyright 2001-2004 (C) MetaStuff, Ltd. All Rights Reserved. 3 * 4 * This software is open source. 5 * See the bottom of this file for the licence. 6 * 7 * $Id: TestAddAttribute.java,v 1.4 2004/06/25 08:03:47 maartenc Exp $ 8 */ 9 10 package org.dom4j; 11 12 import junit.framework.Test; 13 import junit.framework.TestSuite; 14 import junit.textui.TestRunner; 15 16 /*** A test harness to test the addAttribute() methods on attributes 17 * 18 * @author <a href="mailto:maartenc@users.sourceforge.net">Maarten Coene</a> 19 */ 20 public class TestAddAttribute extends AbstractTestCase { 21 22 public static void main( String[] args ) { 23 TestRunner.run( suite() ); 24 } 25 26 public static Test suite() { 27 return new TestSuite( TestAddAttribute.class ); 28 } 29 30 public TestAddAttribute(String name) { 31 super(name); 32 } 33 34 // Test case(s) 35 //------------------------------------------------------------------------- 36 public void testAddAttributeNormalValue() throws Exception { 37 String testAttributeName = "testAtt"; 38 String testAttributeValue = "testValue"; 39 40 Node authorNode = document.selectSingleNode("//root/author[1]"); 41 42 assertTrue(authorNode instanceof Element); 43 44 Element authorEl = (Element) authorNode; 45 authorEl.addAttribute(testAttributeName, testAttributeValue); 46 47 assertEquals(3, authorEl.attributeCount()); 48 assertEquals(testAttributeValue, authorEl.attributeValue(testAttributeName)); 49 } 50 51 public void testAddAttributeNullValue() throws Exception { 52 String testAttributeName = "location"; 53 String testAttributeValue = null; 54 55 Node authorNode = document.selectSingleNode("//root/author[1]"); 56 57 assertTrue(authorNode instanceof Element); 58 59 Element authorEl = (Element) authorNode; 60 authorEl.addAttribute(testAttributeName, testAttributeValue); 61 62 assertEquals(1, authorEl.attributeCount()); 63 assertNull(authorEl.attributeValue(testAttributeName)); 64 } 65 66 } 67 68 69 70 71 /* 72 * Redistribution and use of this software and associated documentation 73 * ("Software"), with or without modification, are permitted provided 74 * that the following conditions are met: 75 * 76 * 1. Redistributions of source code must retain copyright 77 * statements and notices. Redistributions must also contain a 78 * copy of this document. 79 * 80 * 2. Redistributions in binary form must reproduce the 81 * above copyright notice, this list of conditions and the 82 * following disclaimer in the documentation and/or other 83 * materials provided with the distribution. 84 * 85 * 3. The name "DOM4J" must not be used to endorse or promote 86 * products derived from this Software without prior written 87 * permission of MetaStuff, Ltd. For written permission, 88 * please contact dom4j-info@metastuff.com. 89 * 90 * 4. Products derived from this Software may not be called "DOM4J" 91 * nor may "DOM4J" appear in their names without prior written 92 * permission of MetaStuff, Ltd. DOM4J is a registered 93 * trademark of MetaStuff, Ltd. 94 * 95 * 5. Due credit should be given to the DOM4J Project - 96 * http://www.dom4j.org 97 * 98 * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS 99 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 100 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 101 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 102 * METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 103 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 104 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 105 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 106 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 107 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 108 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 109 * OF THE POSSIBILITY OF SUCH DAMAGE. 110 * 111 * Copyright 2001-2004 (C) MetaStuff, Ltd. All Rights Reserved. 112 * 113 * $Id: TestAddAttribute.java,v 1.4 2004/06/25 08:03:47 maartenc Exp $ 114 */