3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.operation
;
12 import java
.util
.HashSet
;
14 import java
.util
.UUID
;
16 import org
.apache
.log4j
.Logger
;
17 import org
.eclipse
.core
.commands
.ExecutionException
;
18 import org
.junit
.Assert
;
19 import org
.junit
.BeforeClass
;
20 import org
.junit
.Test
;
21 import org
.unitils
.dbunit
.annotation
.DataSet
;
23 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
24 import eu
.etaxonomy
.cdm
.api
.service
.UpdateResult
;
25 import eu
.etaxonomy
.cdm
.api
.service
.UpdateResult
.Status
;
26 import eu
.etaxonomy
.cdm
.api
.service
.dto
.CdmEntityIdentifier
;
27 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
28 import eu
.etaxonomy
.taxeditor
.operations
.BaseOperationTest
;
29 import eu
.etaxonomy
.taxeditor
.remoting
.cache
.ProxyUtils
;
30 import eu
.etaxonomy
.taxeditor
.store
.operations
.RemotingTestUpdateOperation
;
38 public class RemotingCdmUpdateOperationTest
extends BaseOperationTest
{
40 private static final Logger logger
= Logger
.getLogger(RemotingCdmUpdateOperationTest
.class);
42 private static ITaxonNodeService taxonNodeService
= getRemoteApplicationController().getTaxonNodeService();
44 private static UUID taxonNodeUuid1
;
45 private static UUID taxonNodeUuid2
;
46 private static UUID taxonNodeUuid3
;
47 private static UUID taxonNodeUuid4
;
48 private static UUID taxonNodeUuid5
;
51 private static Set
<TaxonNode
> taxonNodes
;
52 private static Set
<CdmEntityIdentifier
> ceis
;
55 public static void initializeUpdatedObjects() {
56 taxonNodeUuid1
= UUID
.fromString("b85b5b78-6760-409f-ac91-bb89e95ff2a1");
57 taxonNodeUuid2
= UUID
.fromString("6ad8e9e2-f5f6-41ad-aa30-f62a903650db");
58 taxonNodeUuid3
= UUID
.fromString("91698cec-615f-4472-9002-feda1a6acded");
59 taxonNodeUuid4
= UUID
.fromString("b8439f51-6b96-445a-b401-7a836ba1cf58");
60 taxonNodeUuid5
= UUID
.fromString("629b3fd3f-29b4-4011-ab12-9c1ad1607dbd");
65 public void testUpdateResultWithCdmEntities() throws ExecutionException
{
66 TaxonNode taxonNode1
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
67 TaxonNode taxonNode2
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid2
));
68 TaxonNode taxonNode3
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid3
));
69 TaxonNode taxonNode4
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid4
));
70 TaxonNode taxonNode5
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid5
));
72 taxonNodes
= new HashSet
<TaxonNode
>();
73 taxonNodes
.add(taxonNode1
);
74 taxonNodes
.add(taxonNode2
);
75 taxonNodes
.add(taxonNode3
);
76 taxonNodes
.add(taxonNode4
);
77 taxonNodes
.add(taxonNode5
);
79 UpdateResult result
= new UpdateResult();
80 result
.addUpdatedObjects(taxonNodes
);
81 result
.setStatus(Status
.OK
);
83 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
85 operation
= new RemotingTestUpdateOperation(result
, sessionOwner
, false);
86 operation
.execute(monitor
, info
);
88 Assert
.assertEquals(taxonNodes
, sessionOwner
.getEventUpdatedObjects());
92 public void testUpdateResultWithCdmIdentities() throws ExecutionException
{
93 TaxonNode taxonNode1
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
94 TaxonNode taxonNode2
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid2
));
95 TaxonNode taxonNode3
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid3
));
96 TaxonNode taxonNode4
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid4
));
97 TaxonNode taxonNode5
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid5
));
99 taxonNodes
= new HashSet
<TaxonNode
>();
100 taxonNodes
.add(taxonNode1
);
101 taxonNodes
.add(taxonNode2
);
102 taxonNodes
.add(taxonNode3
);
103 taxonNodes
.add(taxonNode4
);
104 taxonNodes
.add(taxonNode5
);
106 ceis
= new HashSet
<CdmEntityIdentifier
>();
107 ceis
.add(new CdmEntityIdentifier(taxonNode3
.getId(),TaxonNode
.class));
108 ceis
.add(new CdmEntityIdentifier(taxonNode4
.getId(),TaxonNode
.class));
109 ceis
.add(new CdmEntityIdentifier(taxonNode5
.getId(),TaxonNode
.class));
111 UpdateResult result
= new UpdateResult();
112 result
.addUpdatedObject(taxonNode1
);
113 result
.addUpdatedObject(taxonNode2
);
114 result
.addUpdatedCdmIds(ceis
);
116 result
.setStatus(Status
.OK
);
117 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
118 operation
= new RemotingTestUpdateOperation(result
, sessionOwner
, false);
119 operation
.execute(monitor
, info
);
121 Assert
.assertEquals(taxonNodes
, sessionOwner
.getEventUpdatedObjects());
125 public void testUpdateResultWithLoadedCdmIdentities() throws ExecutionException
{
126 TaxonNode taxonNode1
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
127 TaxonNode taxonNode2
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid2
));
128 TaxonNode taxonNode3
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid3
));
129 TaxonNode taxonNode4
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid4
));
130 TaxonNode taxonNode5
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid5
));
132 taxonNodes
= new HashSet
<TaxonNode
>();
133 taxonNodes
.add(taxonNode1
);
134 taxonNodes
.add(taxonNode2
);
135 taxonNodes
.add(taxonNode3
);
136 taxonNodes
.add(taxonNode4
);
137 taxonNodes
.add(taxonNode5
);
139 ceis
= new HashSet
<CdmEntityIdentifier
>();
140 ceis
.add(new CdmEntityIdentifier(taxonNode3
.getId(),TaxonNode
.class));
141 ceis
.add(new CdmEntityIdentifier(taxonNode4
.getId(),TaxonNode
.class));
142 ceis
.add(new CdmEntityIdentifier(taxonNode5
.getId(),TaxonNode
.class));
145 UpdateResult result
= new UpdateResult();
146 result
.addUpdatedObject(taxonNode1
);
147 result
.addUpdatedObject(taxonNode2
);
148 result
.addUpdatedCdmIds(ceis
);
149 result
.addUpdatedCdmId(new CdmEntityIdentifier(46,TaxonNode
.class));
151 result
.setStatus(Status
.OK
);
152 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
153 operation
= new RemotingTestUpdateOperation(result
, sessionOwner
, false);
154 operation
.execute(monitor
, info
);
156 Assert
.assertEquals(taxonNodes
, sessionOwner
.getEventUpdatedObjects());
160 public void testDataChange() throws ExecutionException
{
161 TaxonNode taxonNode
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
162 CdmEntityIdentifier cei
= new CdmEntityIdentifier(taxonNode
.getId(), TaxonNode
.class);
164 taxonNodes
= new HashSet
<TaxonNode
>();
165 taxonNodes
.add(taxonNode
);
167 int taxonNodeCountChildren
= taxonNode
.getCountChildren();
168 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
170 operation
= new RemotingTestUpdateOperation(cei
, sessionOwner
, false);
171 operation
.execute(monitor
, info
);
173 Set eventUpdatedObjects
= sessionOwner
.getEventUpdatedObjects();
174 Assert
.assertEquals(taxonNodes
, eventUpdatedObjects
);
175 Assert
.assertEquals(taxonNodeCountChildren
+ 1, ((TaxonNode
)eventUpdatedObjects
.iterator().next()).getCountChildren());