CdmModelCacher : added recursive search in super classes
[taxeditor.git] / eu.etaxonomy.taxeditor.test / src / test / java / eu / etaxonomy / cdm / model / TaxonNodeTest.java
1 // $Id$
2 /**
3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.cdm.model;
11
12 import java.util.UUID;
13
14 import org.apache.log4j.Level;
15 import org.apache.log4j.Logger;
16 import org.junit.Before;
17 import org.junit.BeforeClass;
18 import org.junit.Test;
19 import org.unitils.dbunit.annotation.DataSet;
20
21 import eu.etaxonomy.cdm.api.service.DeleteResult;
22 import eu.etaxonomy.cdm.api.service.IClassificationService;
23 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
24 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
25 import eu.etaxonomy.cdm.model.common.Language;
26 import eu.etaxonomy.cdm.model.name.BotanicalName;
27 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
28 import eu.etaxonomy.cdm.model.name.Rank;
29 import eu.etaxonomy.cdm.model.taxon.Classification;
30 import eu.etaxonomy.cdm.model.taxon.Taxon;
31 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
32 import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
33 import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
34 import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
35 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
36 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
37 import eu.etaxonomy.taxeditor.session.MockSessionOwner;
38
39 /**
40 * @author cmathew
41 * @date 3 Feb 2015
42 *
43 */
44 @DataSet
45 public class TaxonNodeTest extends BaseRemotingTest {
46
47 private static final Logger logger = Logger.getLogger(TaxonNodeTest.class);
48
49 UUID taxonNodeUuid = UUID.fromString("324a1a77-689c-44be-8e65-347d835f4111");
50 private static final UUID classificationUuid = UUID.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878");
51
52 private static final UUID node1Uuid= UUID.fromString("484a1a77-689c-44be-8e65-347d835f47e8");
53 private static final UUID node2Uuid = UUID.fromString("2d41f0c2-b785-4f73-a436-cc2d5e93cc5b");
54
55 private static final UUID rootNodeUuid = UUID.fromString("324a1a77-689c-44be-8e65-347d835f4111");
56
57 ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
58 IClassificationService classificationService = getRemoteApplicationController().getClassificationService();
59
60
61 private CdmTransientEntityCacher cacher;
62 private ICdmEntitySessionEnabled sessionOwner;
63
64 private ICdmEntitySession cdmEntitySession;
65
66 Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
67
68
69
70 @BeforeClass
71 public static void initializePolytomousKeyTest() {
72 logger.setLevel(Level.INFO);
73 CDMServer.getInstance().setKeepServerRunning(true);
74 initializeController("default",
75 "localhost",
76 8080,
77 "",
78 NomenclaturalCode.ICNAFP,
79 "admin",
80 "00000");
81 }
82
83 @Before
84 public void initializeSession() {
85 sessionOwner = new MockSessionOwner();
86 cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
87 cacher = getCacher(sessionOwner);
88 }
89
90 @Test
91 public void deleteTaxonNode() {
92 Classification classification = classificationService.load(classificationUuid);
93 TaxonNode node1 = taxonNodeService.load(node1Uuid);
94 TaxonNode node2 = taxonNodeService.load(rootNodeUuid);
95 node1 = (TaxonNode)HibernateProxyHelper.deproxy(node1);
96
97 TaxonNode newNode = node1.addChildTaxon(Taxon.NewInstance(BotanicalName.NewInstance(Rank.SPECIES()), null), null, null);
98 newNode = taxonNodeService.merge(newNode);
99 newNode = taxonNodeService.load(newNode.getUuid());
100 UUID taxUUID = newNode.getTaxon().getUuid();
101 UUID nameUUID = newNode.getTaxon().getName().getUuid();
102
103 DeleteResult result = taxonNodeService.deleteTaxonNode(node1, null);
104
105 node1 = taxonNodeService.load(node1Uuid);
106 }
107 }
108