Project

General

Profile

Download (7.39 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(3-3/5)