/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap.xml; import org.jgap.*; import org.jgap.impl.*; import org.jgap.data.*; import junit.framework.*; import org.w3c.dom.*; /** * Tests the XMLDocumentBuilder class. * * @author Klaus Meffert * @since 1.0 */ public class XMLDocumentBuilderTest extends JGAPTestCase { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.6 $"; private final static String FILENAME_WRITE = "GAtestWrite.xml"; public static Test suite() { TestSuite suite = new TestSuite(XMLDocumentBuilderTest.class); return suite; } /** * @throws Exception * @author Klaus Meffert * @since 2.6 */ public void testBuildDocument_0() throws Exception { XMLDocumentBuilder doc = new XMLDocumentBuilder(); DataTreeBuilder builder = DataTreeBuilder.getInstance(); Chromosome chrom = new Chromosome(conf, new Gene[] { new IntegerGene(conf, 1, 5), new IntegerGene(conf, 1, 10)}); chrom.getGene(0).setAllele(new Integer(1)); chrom.getGene(1).setAllele(new Integer( -3)); IDataCreators doc2 = builder.representChromosomeAsDocument(chrom); Document result = (Document)doc.buildDocument(doc2); assertEquals(null, result.getParentNode()); assertEquals(1, result.getChildNodes().getLength()); Node child = result.getChildNodes().item(0); assertEquals("chromosome", child.getNodeName()); assertEquals(1, child.getChildNodes().getLength()); Node genes = child.getChildNodes().item(0); assertEquals(2, genes.getChildNodes().getLength()); } /** * Artifically create a null node * @throws Exception * @author Klaus Meffert * @since 2.6 */ public void testBuildDocument_1() throws Exception { XMLDocumentBuilder doc = new XMLDocumentBuilder(); DataTreeBuilder builder = DataTreeBuilder.getInstance(); Chromosome chrom = new Chromosome(conf, new Gene[] { new IntegerGene(conf, 1, 5), new IntegerGene(conf, 1, 10)}); chrom.getGene(0).setAllele(new Integer(1)); chrom.getGene(1).setAllele(new Integer( -3)); IDataCreators doc2 = builder.representChromosomeAsDocument(chrom); IDataElement elem = doc2.getTree().item(0); privateAccessor.setField(elem, "m_elements", null); Document result = (Document)doc.buildDocument(doc2); assertEquals(null, result.getParentNode()); assertEquals(1, result.getChildNodes().getLength()); Node child = result.getChildNodes().item(0); assertEquals("chromosome", child.getNodeName()); assertEquals(0, child.getChildNodes().getLength()); } }