/******************************************************************************* * Copyright 2006 - 2012 Vienna University of Technology, * Department of Software Technology and Interactive Systems, IFS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package eu.scape_project.pw.planning.criteria.xml; import junit.framework.TestSuite; import eu.scape_project.planning.criteria.xml.CriteriaHierarchyExporter; import eu.scape_project.planning.model.kbrowser.CriteriaHierarchy; import eu.scape_project.planning.model.kbrowser.CriteriaLeaf; import eu.scape_project.planning.model.kbrowser.CriteriaNode; import eu.scape_project.planning.model.measurement.Measure; import org.custommonkey.xmlunit.XMLTestCase; public class CriteriaHierarchyExporterTest extends XMLTestCase { public CriteriaHierarchyExporterTest(String name) { super(name); } public static TestSuite suite() { return new TestSuite(CriteriaHierarchyExporterTest.class); } public void testExportToFreemindXml_noCriterionMapped() throws Exception { // create criteria-hierarchy tree CriteriaLeaf leaf1 = new CriteriaLeaf(); leaf1.setName("leaf1"); CriteriaLeaf leaf2 = new CriteriaLeaf(); leaf2.setName("leaf2"); CriteriaLeaf leaf3 = new CriteriaLeaf(); leaf3.setName("leaf3"); CriteriaNode subNode = new CriteriaNode(); subNode.setName("subNode"); subNode.addChild(leaf1); subNode.addChild(leaf2); CriteriaNode rootNode = new CriteriaNode(); rootNode.setName("rootNode"); rootNode.addChild(subNode); rootNode.addChild(leaf3); // create criteria-hierarchy CriteriaHierarchy cHierarchy = new CriteriaHierarchy(); cHierarchy.setName("hierarchy"); cHierarchy.setCriteriaTreeRoot(rootNode); CriteriaHierarchyExporter criteriaHierarchyExporter = new CriteriaHierarchyExporter(); String exportedXml = criteriaHierarchyExporter.exportToFreemindXml(cHierarchy); String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<map version=\"0.8.1\">" + "<!--To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net-->" + "<node TEXT=\"rootNode\">" + "<node TEXT=\"subNode\">" + "<node TEXT=\"leaf1\"/>" + "<node TEXT=\"leaf2\"/>" + "</node>" + "<node TEXT=\"leaf3\"/>" + "</node>" + "</map>"; assertXMLEqual(expectedXml, exportedXml); } public void testExportToFreemindXml_severalMappedCriteria() throws Exception { // create criteria-hierarchy tree CriteriaLeaf leaf1 = new CriteriaLeaf(); leaf1.setName("leaf1"); Measure imageWidthEqualsCrit = new Measure(); imageWidthEqualsCrit.setUri("outcome://object/image/width#equal"); leaf1.setMeasure(imageWidthEqualsCrit); leaf1.setMapped(true); CriteriaLeaf leaf2 = new CriteriaLeaf(); leaf2.setName("leaf2"); CriteriaLeaf leaf3 = new CriteriaLeaf(); leaf3.setName("leaf3"); Measure textQualityCrit = new Measure(); textQualityCrit.setUri("outcome://object/image/textQuality"); leaf3.setMeasure(textQualityCrit); leaf3.setMapped(true); CriteriaNode subNode = new CriteriaNode(); subNode.setName("subNode"); subNode.addChild(leaf1); subNode.addChild(leaf2); CriteriaNode rootNode = new CriteriaNode(); rootNode.setName("rootNode"); rootNode.addChild(subNode); rootNode.addChild(leaf3); // create criteria-hierarchy CriteriaHierarchy cHierarchy = new CriteriaHierarchy(); cHierarchy.setName("hierarchy"); cHierarchy.setCriteriaTreeRoot(rootNode); CriteriaHierarchyExporter criteriaHierarchyExporter = new CriteriaHierarchyExporter(); String exportedXml = criteriaHierarchyExporter.exportToFreemindXml(cHierarchy); String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<map version=\"0.8.1\">" + "<!--To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net-->" + "<node TEXT=\"rootNode\">" + "<node TEXT=\"subNode\">" + "<node TEXT=\"leaf1|outcome://object/image/width#equal\"/>" + "<node TEXT=\"leaf2\"/>" + "</node>" + "<node TEXT=\"leaf3|outcome://object/image/textQuality\"/>" + "</node>" + "</map>"; assertXMLEqual(expectedXml, exportedXml); } public void testExportToFreemindXml_setMappingWithNullCriterionIsIgnored() throws Exception { // create criteria-hierarchy tree CriteriaLeaf leaf1 = new CriteriaLeaf(); leaf1.setName("leaf1"); leaf1.setMapped(true); leaf1.setMeasure(null); CriteriaNode rootNode = new CriteriaNode(); rootNode.setName("rootNode"); rootNode.addChild(leaf1); // create criteria-hierarchy CriteriaHierarchy cHierarchy = new CriteriaHierarchy(); cHierarchy.setName("hierarchy"); cHierarchy.setCriteriaTreeRoot(rootNode); CriteriaHierarchyExporter criteriaHierarchyExporter = new CriteriaHierarchyExporter(); String exportedXml = criteriaHierarchyExporter.exportToFreemindXml(cHierarchy); String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<map version=\"0.8.1\">" + "<!--To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net-->" + "<node TEXT=\"rootNode\">" + "<node TEXT=\"leaf1\"/>" + "</node>" + "</map>"; assertXMLEqual(expectedXml, exportedXml); } }