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
.remoting
.cache
.ProxyUtils
;
29 import eu
.etaxonomy
.taxeditor
.store
.operations
.RemotingTestUpdateOperation
;
37 public class RemotingCdmUpdateOperationTest
extends BaseOperationTest
{
39 private static final Logger logger
= Logger
.getLogger(RemotingCdmUpdateOperationTest
.class);
41 private static ITaxonNodeService taxonNodeService
= getRemoteApplicationController().getTaxonNodeService();
43 private static UUID taxonNodeUuid1
;
44 private static UUID taxonNodeUuid2
;
45 private static UUID taxonNodeUuid3
;
46 private static UUID taxonNodeUuid4
;
47 private static UUID taxonNodeUuid5
;
50 private static Set
<TaxonNode
> taxonNodes
;
51 private static Set
<CdmEntityIdentifier
> ceis
;
54 public static void initializeUpdatedObjects() {
55 taxonNodeUuid1
= UUID
.fromString("b85b5b78-6760-409f-ac91-bb89e95ff2a1");
56 taxonNodeUuid2
= UUID
.fromString("6ad8e9e2-f5f6-41ad-aa30-f62a903650db");
57 taxonNodeUuid3
= UUID
.fromString("91698cec-615f-4472-9002-feda1a6acded");
58 taxonNodeUuid4
= UUID
.fromString("b8439f51-6b96-445a-b401-7a836ba1cf58");
59 taxonNodeUuid5
= UUID
.fromString("629b3fd3f-29b4-4011-ab12-9c1ad1607dbd");
64 public void testUpdateResultWithCdmEntities() throws ExecutionException
{
65 TaxonNode taxonNode1
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
66 TaxonNode taxonNode2
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid2
));
67 TaxonNode taxonNode3
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid3
));
68 TaxonNode taxonNode4
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid4
));
69 TaxonNode taxonNode5
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid5
));
71 taxonNodes
= new HashSet
<TaxonNode
>();
72 taxonNodes
.add(taxonNode1
);
73 taxonNodes
.add(taxonNode2
);
74 taxonNodes
.add(taxonNode3
);
75 taxonNodes
.add(taxonNode4
);
76 taxonNodes
.add(taxonNode5
);
78 UpdateResult result
= new UpdateResult();
79 result
.addUpdatedObjects(taxonNodes
);
80 result
.setStatus(Status
.OK
);
82 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
84 operation
= new RemotingTestUpdateOperation(result
, sessionOwner
, false);
85 operation
.execute(monitor
, info
);
87 Assert
.assertEquals(taxonNodes
, sessionOwner
.getEventUpdatedObjects());
91 public void testUpdateResultWithCdmIdentities() throws ExecutionException
{
92 TaxonNode taxonNode1
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
93 TaxonNode taxonNode2
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid2
));
94 TaxonNode taxonNode3
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid3
));
95 TaxonNode taxonNode4
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid4
));
96 TaxonNode taxonNode5
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid5
));
98 taxonNodes
= new HashSet
<TaxonNode
>();
99 taxonNodes
.add(taxonNode1
);
100 taxonNodes
.add(taxonNode2
);
101 taxonNodes
.add(taxonNode3
);
102 taxonNodes
.add(taxonNode4
);
103 taxonNodes
.add(taxonNode5
);
105 ceis
= new HashSet
<CdmEntityIdentifier
>();
106 ceis
.add(new CdmEntityIdentifier(taxonNode3
.getId(),TaxonNode
.class));
107 ceis
.add(new CdmEntityIdentifier(taxonNode4
.getId(),TaxonNode
.class));
108 ceis
.add(new CdmEntityIdentifier(taxonNode5
.getId(),TaxonNode
.class));
110 UpdateResult result
= new UpdateResult();
111 result
.addUpdatedObject(taxonNode1
);
112 result
.addUpdatedObject(taxonNode2
);
113 result
.addUpdatedCdmIds(ceis
);
115 result
.setStatus(Status
.OK
);
116 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
117 operation
= new RemotingTestUpdateOperation(result
, sessionOwner
, false);
118 operation
.execute(monitor
, info
);
120 Assert
.assertEquals(taxonNodes
, sessionOwner
.getEventUpdatedObjects());
124 public void testUpdateResultWithLoadedCdmIdentities() throws ExecutionException
{
125 TaxonNode taxonNode1
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
126 TaxonNode taxonNode2
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid2
));
127 TaxonNode taxonNode3
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid3
));
128 TaxonNode taxonNode4
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid4
));
129 TaxonNode taxonNode5
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid5
));
131 taxonNodes
= new HashSet
<TaxonNode
>();
132 taxonNodes
.add(taxonNode1
);
133 taxonNodes
.add(taxonNode2
);
134 taxonNodes
.add(taxonNode3
);
135 taxonNodes
.add(taxonNode4
);
136 taxonNodes
.add(taxonNode5
);
138 ceis
= new HashSet
<CdmEntityIdentifier
>();
139 ceis
.add(new CdmEntityIdentifier(taxonNode3
.getId(),TaxonNode
.class));
140 ceis
.add(new CdmEntityIdentifier(taxonNode4
.getId(),TaxonNode
.class));
141 ceis
.add(new CdmEntityIdentifier(taxonNode5
.getId(),TaxonNode
.class));
144 UpdateResult result
= new UpdateResult();
145 result
.addUpdatedObject(taxonNode1
);
146 result
.addUpdatedObject(taxonNode2
);
147 result
.addUpdatedCdmIds(ceis
);
148 result
.addUpdatedCdmId(new CdmEntityIdentifier(46,TaxonNode
.class));
150 result
.setStatus(Status
.OK
);
151 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
152 operation
= new RemotingTestUpdateOperation(result
, sessionOwner
, false);
153 operation
.execute(monitor
, info
);
155 Assert
.assertEquals(taxonNodes
, sessionOwner
.getEventUpdatedObjects());
159 public void testDataChange() throws ExecutionException
{
160 TaxonNode taxonNode
= (TaxonNode
) ProxyUtils
.deproxy(taxonNodeService
.load(taxonNodeUuid1
));
161 CdmEntityIdentifier cei
= new CdmEntityIdentifier(taxonNode
.getId(), TaxonNode
.class);
163 taxonNodes
= new HashSet
<TaxonNode
>();
164 taxonNodes
.add(taxonNode
);
166 int taxonNodeCountChildren
= taxonNode
.getCountChildren();
167 sessionOwner
.setExpectedUpdatedObjects(taxonNodes
);
169 operation
= new RemotingTestUpdateOperation(cei
, sessionOwner
, false);
170 operation
.execute(monitor
, info
);
172 Set eventUpdatedObjects
= sessionOwner
.getEventUpdatedObjects();
173 Assert
.assertEquals(taxonNodes
, eventUpdatedObjects
);
174 Assert
.assertEquals(taxonNodeCountChildren
+ 1, ((TaxonNode
)eventUpdatedObjects
.iterator().next()).getCountChildren());