clean up
[taxeditor.git] / eu.etaxonomy.taxeditor.test / src / test / java / eu / etaxonomy / taxeditor / operation / RemotingCdmUpdateOperationTest.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.taxeditor.operation;
11
12 import java.util.HashSet;
13 import java.util.Set;
14 import java.util.UUID;
15
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;
22
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;
30
31 /**
32 * @author cmathew
33 * @date 26 Jun 2015
34 *
35 */
36 @DataSet
37 public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
38
39 @SuppressWarnings("unused")
40 private static final Logger logger = Logger.getLogger(RemotingCdmUpdateOperationTest.class);
41
42 private static ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
43
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;
49
50
51 private static Set<TaxonNode> taxonNodes;
52 private static Set<CdmEntityIdentifier> ceis;
53
54 @BeforeClass
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");
61
62 }
63
64 @Test
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));
71
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);
78
79 UpdateResult result = new UpdateResult();
80 result.addUpdatedObjects(taxonNodes);
81 result.setStatus(Status.OK);
82
83 sessionOwner.setExpectedUpdatedObjects(taxonNodes);
84
85 operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
86 operation.execute(monitor, info);
87
88 Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
89 }
90
91 @Test
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));
98
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);
105
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));
110
111 UpdateResult result = new UpdateResult();
112 result.addUpdatedObject(taxonNode1);
113 result.addUpdatedObject(taxonNode2);
114 result.addUpdatedCdmIds(ceis);
115
116 result.setStatus(Status.OK);
117 sessionOwner.setExpectedUpdatedObjects(taxonNodes);
118 operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
119 operation.execute(monitor, info);
120
121 Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
122 }
123
124 @Test
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));
131
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);
138
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));
143
144
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));
150
151 result.setStatus(Status.OK);
152 sessionOwner.setExpectedUpdatedObjects(taxonNodes);
153 operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
154 operation.execute(monitor, info);
155
156 Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
157 }
158
159 @Test
160 public void testDataChange() throws ExecutionException {
161 TaxonNode taxonNode = (TaxonNode) ProxyUtils.deproxy(taxonNodeService.load(taxonNodeUuid1));
162 CdmEntityIdentifier cei = new CdmEntityIdentifier(taxonNode.getId(), TaxonNode.class);
163
164 taxonNodes = new HashSet<TaxonNode>();
165 taxonNodes.add(taxonNode);
166
167 int taxonNodeCountChildren = taxonNode.getCountChildren();
168 sessionOwner.setExpectedUpdatedObjects(taxonNodes);
169
170 operation = new RemotingTestUpdateOperation(cei, sessionOwner, false);
171 operation.execute(monitor, info);
172
173 Set eventUpdatedObjects = sessionOwner.getEventUpdatedObjects();
174 Assert.assertEquals(taxonNodes, eventUpdatedObjects);
175 Assert.assertEquals(taxonNodeCountChildren + 1, ((TaxonNode)eventUpdatedObjects.iterator().next()).getCountChildren());
176 }
177
178 }