Revision 83a1a479
Added by Cherian Mathew almost 9 years ago
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/TaxonNavigatorTest.java | ||
---|---|---|
9 | 9 |
*/ |
10 | 10 |
package eu.etaxonomy.cdm.model; |
11 | 11 |
|
12 |
import java.util.HashSet; |
|
13 |
import java.util.Set; |
|
12 | 14 |
import java.util.UUID; |
13 | 15 |
|
14 | 16 |
import org.apache.log4j.Logger; |
... | ... | |
20 | 22 |
import eu.etaxonomy.cdm.api.service.IClassificationService; |
21 | 23 |
import eu.etaxonomy.cdm.api.service.ITaxonNodeService; |
22 | 24 |
import eu.etaxonomy.cdm.api.service.ITaxonService; |
25 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
|
23 | 26 |
import eu.etaxonomy.cdm.model.common.Language; |
27 |
import eu.etaxonomy.cdm.model.description.TaxonDescription; |
|
24 | 28 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase; |
29 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
|
25 | 30 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
26 | 31 |
import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingChangeAcceptedTaxonToSynonymOperation; |
32 |
import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveFactualDataOperation; |
|
33 |
import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOperation; |
|
27 | 34 |
import eu.etaxonomy.taxeditor.operations.BaseOperationTest; |
28 | 35 |
|
29 | 36 |
/** |
... | ... | |
45 | 52 |
|
46 | 53 |
|
47 | 54 |
@Test |
48 |
public void changeAcceptedTaxonToSynonymTest() throws ExecutionException {
|
|
55 |
public void testChangeAcceptedTaxonToSynonym() throws ExecutionException {
|
|
49 | 56 |
|
50 | 57 |
|
51 | 58 |
UUID oldTaxonNodeNodeUuid = UUID.fromString("b85b5b78-6760-409f-ac91-bb89e95ff2a1"); |
... | ... | |
53 | 60 |
|
54 | 61 |
TaxonNode oldTaxonNode = taxonNodeService.load(oldTaxonNodeNodeUuid); |
55 | 62 |
TaxonNameBase name = oldTaxonNode.getTaxon().getName(); |
63 |
|
|
64 |
|
|
56 | 65 |
TaxonNode newAcceptedTaxonNode = taxonNodeService.load(newAcceptedTaxonNodeUuid); |
57 |
sessionOwner.addUpdatedObject(oldTaxonNode.getParent()); |
|
66 |
int countTargetSynonyms = newAcceptedTaxonNode.getTaxon().getSynonyms().size(); |
|
67 |
sessionOwner.addExpectedUpdatedObject(oldTaxonNode.getParent()); |
|
68 |
|
|
58 | 69 |
|
59 |
Assert.assertEquals(0,newAcceptedTaxonNode.getTaxon().getSynonyms().size()); |
|
60 | 70 |
operation = new RemotingChangeAcceptedTaxonToSynonymOperation(sessionOwner, |
61 | 71 |
false, |
62 |
oldTaxonNode, |
|
63 |
newAcceptedTaxonNode); |
|
72 |
oldTaxonNode.getUuid(),
|
|
73 |
newAcceptedTaxonNode.getUuid());
|
|
64 | 74 |
operation.execute(monitor, info); |
65 | 75 |
newAcceptedTaxonNode = taxonNodeService.load(newAcceptedTaxonNodeUuid); |
66 |
sessionOwner.addUpdatedObject(newAcceptedTaxonNode); |
|
76 |
sessionOwner.addExpectedUpdatedObject(newAcceptedTaxonNode);
|
|
67 | 77 |
|
68 | 78 |
oldTaxonNode = taxonNodeService.load(oldTaxonNodeNodeUuid); |
69 | 79 |
Assert.assertNull(oldTaxonNode); |
70 |
Assert.assertEquals(1,newAcceptedTaxonNode.getTaxon().getSynonyms().size()); |
|
80 |
Assert.assertEquals(countTargetSynonyms + 1,newAcceptedTaxonNode.getTaxon().getSynonyms().size());
|
|
71 | 81 |
Assert.assertEquals(name, newAcceptedTaxonNode.getTaxon().getSynonyms().iterator().next().getName()); |
72 | 82 |
|
73 | 83 |
|
74 | 84 |
} |
75 | 85 |
|
76 | 86 |
@Test |
77 |
public void moveTaxonTest() { |
|
87 |
public void testMoveTaxon() throws ExecutionException { |
|
88 |
|
|
89 |
UUID taxonNodeToMoveUuid = UUID.fromString("b8439f51-6b96-445a-b401-7a836ba1cf58"); |
|
90 |
UUID newParentTreeNodeUuid = UUID.fromString("2f05d429-632d-4230-b9cb-70299360b470"); |
|
91 |
boolean moveToParentNode = true; |
|
92 |
|
|
93 |
TaxonNode taxonNodeToMove = taxonNodeService.load(taxonNodeToMoveUuid); |
|
94 |
TaxonNode oldParent = taxonNodeToMove.getParent(); |
|
95 |
sessionOwner.addExpectedUpdatedObject(oldParent); |
|
96 |
int childCount = oldParent.getCountChildren(); |
|
97 |
TaxonNode newParentTreeNode = taxonNodeService.load(newParentTreeNodeUuid); |
|
98 |
sessionOwner.addExpectedUpdatedObject(newParentTreeNode); |
|
99 |
operation = new RemotingMoveTaxonOperation(sessionOwner, |
|
100 |
false, |
|
101 |
taxonNodeToMove.getUuid(), |
|
102 |
newParentTreeNode.getUuid(), |
|
103 |
moveToParentNode); |
|
104 |
operation.execute(monitor, info); |
|
105 |
Assert.assertEquals(childCount-1, oldParent.getCountChildren()); |
|
106 |
Assert.assertTrue(!oldParent.getChildNodes().contains(taxonNodeToMove)); |
|
107 |
Assert.assertTrue(newParentTreeNode.getChildNodes().contains(taxonNodeToMove)); |
|
108 |
} |
|
109 |
|
|
110 |
@Test |
|
111 |
public void testMoveFactualData() throws ExecutionException { |
|
112 |
UUID sourceTaxonUuid = UUID.fromString("e40854d7-143f-4054-b229-6ed4cedb4bff"); |
|
113 |
UUID targetTaxonUuid = UUID.fromString("b8402dc4-5050-4882-a147-01b71e0e47d6"); |
|
114 |
|
|
115 |
Taxon sourceTaxon = CdmBase.deproxy(taxonService.load(sourceTaxonUuid), Taxon.class); |
|
116 |
Set<TaxonDescription> sourceDescriptions = new HashSet(sourceTaxon.getDescriptions()); |
|
117 |
sessionOwner.addExpectedUpdatedObject(sourceTaxon); |
|
78 | 118 |
|
119 |
Taxon targetTaxon = CdmBase.deproxy(taxonService.load(targetTaxonUuid), Taxon.class); |
|
120 |
int countTargetDescriptions = targetTaxon.getDescriptions().size(); |
|
121 |
sessionOwner.addExpectedUpdatedObject(targetTaxon); |
|
122 |
|
|
123 |
operation = new RemotingMoveFactualDataOperation(sessionOwner, |
|
124 |
false, |
|
125 |
sourceTaxonUuid, |
|
126 |
targetTaxonUuid); |
|
127 |
operation.execute(monitor, info); |
|
128 |
Assert.assertEquals(0, sourceTaxon.getDescriptions().size()); |
|
129 |
Assert.assertEquals(sourceDescriptions.size() + countTargetDescriptions, targetTaxon.getDescriptions().size()); |
|
130 |
Assert.assertTrue(targetTaxon.getDescriptions().containsAll(sourceDescriptions)); |
|
79 | 131 |
} |
80 | 132 |
|
81 | 133 |
|
Also available in: Unified diff
TaxonNavigator : added refresh of navigator on data change
TaxonNavigatorLabels : new interface with label strings used by taxon navigator handlers
RemotingChangeAcceptedTaxonToSynonymHandler : using TaxonNavigatorLabels
RemotingMoveFactualDataHandler : remoting version of move factual data handler
RemotingMoveFactualDataOperation : remoting version of move factual data operation
RemotingMoveTaxonHandler : remoting version of move taxon handler
RemotingMoveTaxonOperation : remoting version of move taxon operation
RemotingChangeAcceptedTaxonToSynonymOperation : replaced constructor input cdm entities to their uuids
RemotingCdmHandler : updated to handle other status severities and to handle warning status in post operation
RemotingCdmUpdateOperation : updated for warning status
TaxonNavigatorTest : added move taxon and move factual data tests