+++ /dev/null
-// $Id$
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.cdm.polytomouskey;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.hibernate.collection.spi.PersistentCollection;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.unitils.dbunit.annotation.DataSet;
-
-import eu.etaxonomy.cdm.api.cache.CachedCommonServiceImpl;
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.Credit;
-import eu.etaxonomy.cdm.model.common.Extension;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.cdm.model.description.KeyStatement;
-import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
-import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
-
-/**
- * @author cmathew
- * @date 7 Oct 2014
- *
- */
-@DataSet
-public class PolytomousKeyTest extends BaseRemotingTest {
-
- private static final Logger logger = Logger.getLogger(PolytomousKeyTest.class);
-
- UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
- UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
-
-
- IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
- ICommonService commonService = getRemoteApplicationController().getCommonService();
- ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
-
- Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
-
- @BeforeClass
- public static void initializePolytomousKeyTest() {
- logger.setLevel(Level.INFO);
- CDMServer.getInstance().setKeepServerRunning(true);
-
- initializeController("default", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
- }
-
- @Test
- public void readAllPolytomousKeys() {
- List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
- for(PolytomousKey pKey : pKeys) {
- logger.info("Polytomous Key : " + pKey.getTitleCache());
- }
- }
-
-
- @Test
- //@DataSet("PolytomousKeyTest.readPolytmousKeyData.xml")
- public void readPolytmousKeyData() {
- PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- Set<Taxon> taxonomicScope = pKey.getTaxonomicScope();
- Iterator<Taxon> tsItr = taxonomicScope.iterator();
- Taxon taxon = tsItr.next();
- logger.info("taxonomic scope : " + taxon.getTitleCache());
- Assert.assertEquals(taxon.getTitleCache(), "Achillea cretica L. sec. Cyprus");
- taxon = tsItr.next();
- logger.info("taxonomic scope : " + taxon.getTitleCache());
- Assert.assertEquals(taxon.getTitleCache(), "Achillea sec. Cyprus");
- Assert.assertEquals(tsItr.hasNext(), false);
-
- List<Credit> credits = pKey.getCredits();
- AgentBase agent = credits.get(0).getAgent();
- Assert.assertEquals(agent.getId(),4809);
- Assert.assertEquals(agent.getTitleCache(),"R. A. Graham");
- Assert.assertEquals(credits.get(0).getText(),"Credits Text Test");
-
- Set<Extension> exts = pKey.getExtensions();
- Iterator<Extension> extItr = exts.iterator();
- Extension ext = extItr.next();
- Assert.assertEquals(ext.getValue(), "http://test.com");
-
- Set<Rights> rights = pKey.getRights();
- Iterator<Rights> rightsItr = rights.iterator();
- Rights right = rightsItr.next();
- Assert.assertEquals(right.getText(),"Rights Text Test");
-
- Set<IdentifiableSource> sources = pKey.getSources();
- Iterator<IdentifiableSource> sourcesItr = sources.iterator();
- IdentifiableSource source = sourcesItr.next();
- Assert.assertEquals(source.getId(), 23710);
- source = sourcesItr.next();
- Assert.assertEquals(source.getId(), 23711);
-
- // TO DO : Added tests for Annotations , Markers
- }
-
- @Test
- public void readPolytomousKeyDataFromNodes() {
- PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- PolytomousKeyNode rootNode = pKey.getRoot();
-
-
- Assert.assertEquals(rootNode.getId(), 2750);
-
- Assert.assertEquals(rootNode.getChildAt(0).getId(), 2751);
- Assert.assertEquals(rootNode.getChildAt(0).getParent().getId(), rootNode.getId());
- Assert.assertEquals(rootNode.getKey().getId(), pKey.getId());
- Integer sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(0), "sortIndex");
- Assert.assertEquals(sortIndex, new Integer(0));
- String statement = "Capitula without ligulate ray-florets; leaves entire or subentire";
- Assert.assertEquals(rootNode.getChildAt(0).getStatement().getLabelText(english), statement);
-
- Assert.assertEquals(rootNode.getChildAt(1).getId(), 2753);
- Assert.assertEquals(rootNode.getChildAt(1).getParent().getId(), rootNode.getId());
- Assert.assertEquals(rootNode.getChildAt(1).getKey().getId(), pKey.getId());
- sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1), "sortIndex");
- Assert.assertEquals(sortIndex, new Integer(1));
- statement = "Capitula with ligulate ray-florets; leaves pinnatisect";
- Assert.assertEquals(rootNode.getChildAt(1).getStatement().getLabelText(english), statement);
-
- Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getId(), 2754);
- Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getParent().getId(), rootNode.getChildAt(1).getId());
- Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getKey().getId(), pKey.getId());
- sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1).getChildAt(0), "sortIndex");
- Assert.assertEquals(sortIndex, new Integer(0));
- statement = "Ray-florets yellow";
- Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getStatement().getLabelText(english), statement);
- Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getChildAt(0).getTaxon().getTitleCache(), "Achillea arabica Kotschy sec. Cyprus");
- }
-
- @Test
- public void savePolytomousKeyNodeData() {
- PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- PolytomousKeyNode pkeynode = pkey.getRoot();
- String newQuestion = "New Question";
- String newStatement = "New Statement";
-
- Assert.assertEquals("Question 1",pkeynode.getQuestion().getLabel().get(english).getText());
- for(PolytomousKeyNode node : pkeynode.getChildren()) {
-
- node.setQuestion(null);
- node.setStatement(null);
- }
- //FIXME: Add tests for feature after fixing problem
-
- //Feature feature = pkeynode.getFeature();
- //Assert.assertEquals(feature.getTitleCache(),"Systematics");
- //pkeynode.setFeature(null);
-
- Assert.assertEquals(pkeynode.getChildAt(0).getModifyingText().get(english).getText(),"Modifying Text 1a");
- String modifyingText = "Modifying Text 1a updated";
-
- //pkeynode.getChildAt(0).putModifyingText(english, modifyingText);
-
- Assert.assertEquals(pkeynode.getChildAt(0).getSubkey().getId(),751);
- Assert.assertEquals(pkeynode.getChildAt(0).getSubkey().getTitleCache(),"Asphodeline");
- Assert.assertNull(pkeynode.getChildAt(1).getTaxon());
- Taxon taxon = CdmBase.deproxy(taxonService.find(taxon1Uuid),Taxon.class);
- pkeynode.getChildAt(1).setTaxon(taxon);
-
- polytomousKeyService.merge(pkey);
-
- pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- pkeynode = pkey.getRoot();
- for(PolytomousKeyNode node : pkeynode.getChildren()) {
- Assert.assertNull(node.getQuestion());
- node.setQuestion(KeyStatement.NewInstance(english,newQuestion));
- Assert.assertNull(node.getStatement());
- node.setStatement(KeyStatement.NewInstance(english,newStatement));
- }
- //Assert.assertNull(pkeynode.getFeature());
- //pkeynode.setFeature(feature);
-
- //Assert.assertEquals(pkeynode.getChildAt(0).getModifyingText().get(english).getText(),modifyingText);
- Assert.assertEquals(pkeynode.getChildAt(1).getTaxon(), taxon);
-
- polytomousKeyService.merge(pkey);
-
- pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- pkeynode = pkey.getRoot();
- for(PolytomousKeyNode node : pkeynode.getChildren()) {
- Assert.assertNotNull(node.getQuestion());
- Map<Language, LanguageString> label = node.getQuestion().getLabel();
- Assert.assertEquals(newQuestion, label.get(english).getText());
- Assert.assertNotNull(node.getStatement());
- Assert.assertEquals(newStatement, node.getStatement().getLabel(english).getText());
- }
- //Assert.assertEquals(pkeynode.getFeature().getId(), feature.getId());
-
- }
-
- @Test
- public void savePolytomousKeyNodeDataWithSameSubKey() {
- //CachedCommonServiceImpl.setCacheEnabled(false);
- PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- PolytomousKeyNode pkeynode = pkey.getRoot();
-
- PolytomousKey subkey1 = pkeynode.getChildAt(0).getSubkey();
- String subkey1title = subkey1.getTitleCache();
- subkey1.setTitleCache(subkey1title + "test", true);
-
-
- PolytomousKey subkey2 = pkeynode.getChildAt(1).getChildAt(0).getSubkey();
- String subkey2title = subkey2.getTitleCache();
- subkey2.setTitleCache(subkey2title + "test", true);
-
- Assert.assertNotSame(subkey1, subkey2);
-
-
- polytomousKeyService.merge(pkey);
- }
-
- @Test
- public void savePolytomousKeyNodeDataWithSameSubKeyUsingService() {
- CachedCommonServiceImpl.setCacheEnabled(false);
- PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- PolytomousKeyNode pkeynode = pkey.getRoot();
-
- PersistentCollection children = (PersistentCollection) pkeynode.getChildren();
- PolytomousKeyNode childNode0 = (PolytomousKeyNode)commonService.get(children, 0);
- PolytomousKey subkey1 = CdmBase.deproxy(childNode0.getSubkey(),PolytomousKey.class);
- String subkey1title = subkey1.getTitleCache();
- subkey1.setTitleCache(subkey1title + "test", true);
-
- PolytomousKeyNode childNode1 = (PolytomousKeyNode)commonService.get(children, 1);
- PolytomousKey subkey2 = CdmBase.deproxy(childNode1.getSubkey(),PolytomousKey.class);
- String subkey2title = subkey2.getTitleCache();
- subkey2.setTitleCache(subkey2title + "test", true);
-
- Assert.assertNotSame(subkey1, subkey2);
-
- polytomousKeyService.merge(pkey);
- }
-
-
- @Test
- public void savePolytomousKeyNodeDataWithSameLanguageInLabel() {
- PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
- PolytomousKeyNode pkeynode = pkey.getRoot();
-
- Map<Language, LanguageString> label1 = pkeynode.getQuestion().getLabel();
- label1.size();
- //Language lang1 = label1.get(english).getLanguage();
- //String title1 = lang1.getTitleCache();
-
- Map<Language, LanguageString> label2 = pkeynode.getChildAt(0).getStatement().getLabel();
- label2.size();
- //Language lang2 = label2.get(english).getLanguage();
- //String title2 = lang2.getTitleCache();
-
- polytomousKeyService.merge(pkey);
- }
-
-
-}