Skip to content

Package: SaveLoad_PTest

SaveLoad_PTest

nameinstructionbranchcomplexitylinemethod
SaveLoad_PTest()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
createLeague(String)
M: 0 C: 24
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
createPlayer(String, Gender, double, boolean, int)
M: 0 C: 20
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
setUp()
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
tearDown()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
testRoundtrip()
M: 0 C: 172
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 39
100%
M: 0 C: 1
100%
testTableDomainModelReference()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 22
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Eugen - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.diffmerge.test;
15:
16: import static org.junit.Assert.assertTrue;
17:
18: import java.io.IOException;
19: import java.util.LinkedHashSet;
20: import java.util.Set;
21:
22: import org.eclipse.emf.common.util.URI;
23: import org.eclipse.emf.ecore.EObject;
24: import org.eclipse.emf.ecore.resource.Resource;
25: import org.eclipse.emf.ecore.resource.ResourceSet;
26: import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
27: import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeContextFactory;
28: import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
29: import org.eclipse.emf.ecp.test.common.DefaultRealm;
30: import org.eclipse.emf.ecp.view.spi.model.VControl;
31: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
32: import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
33: import org.eclipse.emf.ecp.view.spi.model.VView;
34: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
35: import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
36: import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
37: import org.eclipse.emf.ecp.view.spi.table.model.VTableFactory;
38: import org.eclipse.emf.emfstore.bowling.BowlingFactory;
39: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
40: import org.eclipse.emf.emfstore.bowling.Gender;
41: import org.eclipse.emf.emfstore.bowling.League;
42: import org.eclipse.emf.emfstore.bowling.Player;
43: import org.junit.After;
44: import org.junit.Before;
45: import org.junit.Test;
46:
47: /**
48: * @author Eugen
49: *
50: */
51: public class SaveLoad_PTest {
52:         private DefaultRealm realm;
53:
54:         @Before
55:         public void setUp() {
56:                 realm = new DefaultRealm();
57:         }
58:
59:         @After
60:         public void tearDown() {
61:                 realm.dispose();
62:         }
63:
64:         /**
65:          * Round trip test.
66:          *
67:          * @throws IOException is thrown if file cannot be found
68:          */
69:         @Test
70:         public void testRoundtrip() throws IOException {
71:                 final VView view = VViewFactory.eINSTANCE.createView();
72:
73:                 final VControl vControlName = VViewFactory.eINSTANCE.createControl();
74:                 vControlName.setDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_Name());
75:                 view.getChildren().add(vControlName);
76:
77:                 final VControl vControlGender = VViewFactory.eINSTANCE.createControl();
78:                 vControlGender.setDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_Gender());
79:                 view.getChildren().add(vControlGender);
80:
81:                 final VControl vControlHeight = VViewFactory.eINSTANCE.createControl();
82:                 vControlHeight.setDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_Height());
83:                 view.getChildren().add(vControlHeight);
84:
85:                 final VControl vControlProfessional = VViewFactory.eINSTANCE.createControl();
86:                 vControlProfessional.setDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_IsProfessional());
87:                 view.getChildren().add(vControlProfessional);
88:
89:                 final VControl vControlNumberOfVictories = VViewFactory.eINSTANCE.createControl();
90:                 vControlNumberOfVictories.setDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_NumberOfVictories());
91:                 view.getChildren().add(vControlNumberOfVictories);
92:
93:                 final Player left = createPlayer("a", Gender.MALE, 1, true, 1); //$NON-NLS-1$
94:                 final Player right = createPlayer("a", Gender.FEMALE, 2, false, 1); //$NON-NLS-1$
95:                 final Player target = createPlayer("b", Gender.MALE, 3, true, 1); //$NON-NLS-1$
96:
97:                 final DiffMergeModelContext context = DiffMergeContextFactory.INSTANCE.createViewModelContext(view, target,
98:                         left, right);
99:                 context.markControl(vControlGender, true);
100:                 context.markControl(vControlHeight, true);
101:
102:                 final Set<VDomainModelReference> mergedDomainObjects = context.getMergedDomainObjects();
103:
104:                 // save
105:                 final ResourceSet resourceSet = new ResourceSetImpl();
106:                 final Resource resource = resourceSet.createResource(URI.createFileURI("test.xmi")); //$NON-NLS-1$
107:                 resource.getContents().addAll(mergedDomainObjects);
108:                 resource.save(null);
109:                 // load
110:
111:                 final ResourceSet resourceSet1 = new ResourceSetImpl();
112:                 final Resource resource1 = resourceSet1.createResource(URI.createFileURI("test.xmi")); //$NON-NLS-1$
113:                 resource1.load(null);
114:
115:                 final Set<VDomainModelReference> savedObjects = new LinkedHashSet<VDomainModelReference>();
116:•                for (final EObject eObject : resource1.getContents()) {
117:                         savedObjects.add((VDomainModelReference) eObject);
118:                 }
119:
120:                 // check that stuff was loaded correctly
121:                 final DiffMergeModelContext context2 = DiffMergeContextFactory.INSTANCE.createViewModelContext(view, target,
122:                         left, right, savedObjects);
123:
124:                 assertTrue(context2.isControlMerged(vControlGender));
125:                 assertTrue(context2.isControlMerged(vControlHeight));
126:         }
127:
128:         private Player createPlayer(String name, Gender gender, double height, boolean professional,
129:                 int numberOfVictories) {
130:                 final Player player = BowlingFactory.eINSTANCE.createPlayer();
131:                 player.setName(name);
132:                 player.setGender(gender);
133:                 player.setHeight(height);
134:                 player.setIsProfessional(professional);
135:                 player.setNumberOfVictories(numberOfVictories);
136:                 return player;
137:         }
138:
139:         @Test
140:         public void testTableDomainModelReference() {
141:
142:                 final VView view = VViewFactory.eINSTANCE.createView();
143:
144:                 final VTableControl vControlPlayers = VTableFactory.eINSTANCE.createTableControl();
145:                 final VTableDomainModelReference ref = VTableFactory.eINSTANCE.createTableDomainModelReference();
146:                 ref.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
147:                 vControlPlayers.setDomainModelReference(ref);
148:                 final VFeaturePathDomainModelReference col = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
149:                 col.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
150:                 VTableDomainModelReference.class.cast(vControlPlayers.getDomainModelReference())
151:                         .getColumnDomainModelReferences().add(col);
152:                 view.getChildren().add(vControlPlayers);
153:
154:                 final League left = createLeague("a"); //$NON-NLS-1$
155:                 final League right = createLeague("a"); //$NON-NLS-1$
156:                 final League target = createLeague("b"); //$NON-NLS-1$
157:
158:                 final Set<VDomainModelReference> savedObjects = new LinkedHashSet<VDomainModelReference>();
159:                 final VTableDomainModelReference tableDomainModelReference = VTableFactory.eINSTANCE
160:                         .createTableDomainModelReference();
161:                 tableDomainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
162:                 savedObjects.add(tableDomainModelReference);
163:
164:                 final DiffMergeModelContext context2 = DiffMergeContextFactory.INSTANCE.createViewModelContext(view, target,
165:                         left, right, savedObjects);
166:
167:                 assertTrue(context2.isControlMerged(vControlPlayers));
168:         }
169:
170:         private League createLeague(String name) {
171:                 final League league = BowlingFactory.eINSTANCE.createLeague();
172:                 league.setName(name);
173:                 final Player player = BowlingFactory.eINSTANCE.createPlayer();
174:                 league.getPlayers().add(player);
175:                 final Player player2 = BowlingFactory.eINSTANCE.createPlayer();
176:                 league.getPlayers().add(player2);
177:                 return league;
178:         }
179: }