content: /**
   * 
   */
  package com.alexgilleran.icesoap.xml.test;
  
  import static org.junit.Assert.assertEquals;
  import static org.junit.Assert.assertTrue;
  
  import org.junit.Test;
  
  import com.alexgilleran.icesoap.xml.XMLNode;
  import com.alexgilleran.icesoap.xml.XMLTextNode;
  import com.alexgilleran.icesoap.xml.impl.XMLTextNodeImpl;
  
  /**
   * Tests that the {@link XMLTextNodeImpl} class, which represents basic XML Text
   * nodes in the format {@code <element>value</element>}, works as desired.
   * 
   * @author Alex Gilleran
   * 
   */
  public class XMLTextNodeTest extends XMLElementTest<XMLTextNodeImpl> {
  	/** Basic namespace to pass up the class hierarchy */
  	private final static String DEFAULT_NAMESPACE = "http://www.example.com";
  	/** Basic name to pass up the class hierarchy */
  	private final static String DEFAULT_NAME = "textelement";
  	/** Basic text value */
  	private static final String DEFAULT_VALUE = "value";
  
  	public XMLTextNodeTest() {
  		super(DEFAULT_NAMESPACE, DEFAULT_NAME);
  	}
  
  	/**
  	 * {@inheritDoc}
  	 */
  	@Override
  	protected XMLTextNodeImpl constructElement(String namespace, String name) {
  		return new XMLTextNodeImpl(namespace, name, DEFAULT_VALUE);
  	}
  
  /**
  	 * Tests that the value merely shows up in the node between the '>' and '<' symbols.
  	 */
  	@Test
  	public void testToStringValue() {
  		String asString = getXMLObject().toString();
  		assertTrue(asString, asString.contains(">" + DEFAULT_VALUE + "<"));
  	}
  
  	/**
  	 * Tests that a basic value toStrings to the expected format - this simply
  	 * nullifies the namespace as that is tested in {@link XMLElementTest}.
  	 */
  	@Test
  	public void testToString() {
  		getXMLObject().setNamespace(null);
  		final String expected = "<" + getXMLObject().getName() + ">"
  				+ DEFAULT_VALUE + "</" + getXMLObject().getName() + ">";
  
  		assertEquals(expected, getXMLObject().toString());
  	}
  
  	@Test
  	public void testNullValue() {
  		XMLTextNode node = new XMLTextNodeImpl(null, "name", null);
  		node.declarePrefix(XMLNode.NS_PREFIX_XSI, XMLNode.NS_URI_XSI);
  
  		assertEquals(
  				"<name xsi:nil=\"true\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />",
  				node.toString());
  	}
  }
  