Skip to content

Package: ECPProject_PTest

ECPProject_PTest

nameinstructionbranchcomplexitylinemethod
ECPProject_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%
setup()
M: 1 C: 22
96%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 7
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%
testDeleteElements()
M: 5 C: 145
97%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 1 C: 34
97%
M: 0 C: 1
100%
testDirtySaveModel()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
testGetElements()
M: 0 C: 143
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 26
100%
M: 0 C: 1
100%
testGetReferenceCandidates()
M: 0 C: 122
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 26
100%
M: 0 C: 1
100%
testGetUnsupportedEPackages()
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
testIsModelroot()
M: 0 C: 63
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testSaveProperties()
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%
testVisibleClasses()
M: 10 C: 75
88%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 2 C: 17
89%
M: 0 C: 1
100%
testVisiblePackages()
M: 0 C: 45
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2012 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 Neufeld - initial API and implementation
13: *
14: *******************************************************************************/
15: package org.eclipse.emf.ecp.core.test;
16:
17: import static org.junit.Assert.assertEquals;
18: import static org.junit.Assert.assertFalse;
19: import static org.junit.Assert.assertTrue;
20: import static org.junit.Assert.fail;
21:
22: import java.util.ArrayList;
23: import java.util.Collection;
24: import java.util.HashSet;
25: import java.util.Iterator;
26: import java.util.List;
27: import java.util.Set;
28: import java.util.UUID;
29:
30: import org.eclipse.emf.ecore.EClass;
31: import org.eclipse.emf.ecore.EObject;
32: import org.eclipse.emf.ecore.EPackage;
33: import org.eclipse.emf.ecore.EReference;
34: import org.eclipse.emf.ecore.EcoreFactory;
35: import org.eclipse.emf.ecore.EcorePackage;
36: import org.eclipse.emf.ecp.core.exceptions.ECPProjectWithNameExistsException;
37: import org.eclipse.emf.ecp.spi.core.InternalProject;
38: import org.junit.After;
39: import org.junit.Before;
40: import org.junit.Test;
41:
42: /**
43: * ECPProject-tests
44: *
45: * @author Tobias Verhoeven
46: */
47: public class ECPProject_PTest extends AbstractTest {
48:
49:         /** The project. */
50:         private InternalProject project;
51:
52:         /**
53:          * Setup.
54:          */
55:         @Before
56:         public void setup() {
57:
58:                 boolean done = false;
59:
60:•                while (!done) {
61:                         try {
62:                                 project = (InternalProject) getProjectManager().createProject(getProvider(),
63:                                         "Projekt " + UUID.randomUUID());
64:                                 done = true;
65:                         } catch (final ECPProjectWithNameExistsException e) {
66:                         }
67:                 }
68:         }
69:
70:         /**
71:          * Tear down.
72:          */
73:         @After
74:         public void tearDown() {
75:                 project.delete();
76:         }
77:
78:         /**
79:          * Test get elements.
80:          */
81:         @Test
82:         public void testGetElements() {
83:                 assertEquals(0, project.getContents().size());
84:
85:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
86:                 final EObject reference = EcoreFactory.eINSTANCE.createEReference();
87:
88:                 project.getContents().add(clazz);
89:
90:                 assertEquals(1, project.getContents().size());
91:                 assertTrue(project.contains(clazz));
92:                 assertTrue(project.getContents().contains(clazz));
93:
94:                 project.getContents().add(reference);
95:                 assertEquals(2, project.getContents().size());
96:                 assertTrue(project.contains(clazz));
97:                 assertTrue(project.getContents().contains(clazz));
98:                 assertTrue(project.contains(reference));
99:                 assertTrue(project.getContents().contains(reference));
100:
101:                 project.getContents().remove(clazz);
102:                 assertEquals(1, project.getContents().size());
103:                 assertFalse(project.contains(clazz));
104:                 assertFalse(project.getContents().contains(clazz));
105:                 assertTrue(project.contains(reference));
106:                 assertTrue(project.getContents().contains(reference));
107:
108:                 project.getContents().remove(reference);
109:                 assertEquals(0, project.getContents().size());
110:                 assertFalse(project.contains(clazz));
111:                 assertFalse(project.getContents().contains(clazz));
112:                 assertFalse(project.contains(reference));
113:                 assertFalse(project.getContents().contains(reference));
114:         }
115:
116:         /**
117:          * Test get unsupported e packages.
118:          */
119:         @Test
120:         public void testGetUnsupportedEPackages() {
121:                 project.getUnsupportedEPackages();
122:                 // TODO add correct assert
123:                 // fail("This method always returns an empty list");
124:         }
125:
126:         /**
127:          * Test visible packages.
128:          */
129:         @Test
130:         public void testVisiblePackages() {
131:                 final Set<EPackage> packages = project.getVisiblePackages();
132:                 assertFalse(packages.contains(EcorePackage.eINSTANCE));
133:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
134:                 final EObject reference = EcoreFactory.eINSTANCE.createEReference();
135:
136:                 project.getContents().add(clazz);
137:                 assertTrue(project.contains(clazz));
138:
139:                 packages.add(EcorePackage.eINSTANCE);
140:                 assertTrue(packages.contains(EcorePackage.eINSTANCE));
141:
142:                 project.getContents().add(reference);
143:                 assertTrue(project.contains(reference));
144:         }
145:
146:         /**
147:          * Test visible classes.
148:          */
149:         @Test
150:         public void testVisibleClasses() {
151:                 boolean failed = true;
152:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
153:                 final EObject reference = EcoreFactory.eINSTANCE.createEReference();
154:
155:                 try {
156:                         project.getVisibleEClasses().add(clazz.eClass());
157:                 } catch (final UnsupportedOperationException upe) {
158:                         failed = false;
159:                 }
160:
161:•                if (failed) {
162:                         fail("Class list is modifiable");
163:                 }
164:
165:                 final Set<EClass> classes = new HashSet<EClass>(project.getVisibleEClasses());
166:                 assertEquals(0, classes.size());
167:                 classes.add(clazz.eClass());
168:                 project.setVisibleEClasses(classes);
169:
170:                 assertEquals(1, project.getVisibleEClasses().size());
171:                 assertTrue(project.getVisibleEClasses().contains(clazz.eClass()));
172:
173:                 classes.add(reference.eClass());
174:
175:                 assertEquals(2, project.getVisibleEClasses().size());
176:                 assertTrue(project.getVisibleEClasses().contains(clazz.eClass()));
177:                 assertTrue(project.getVisibleEClasses().contains(reference.eClass()));
178:         }
179:
180:         /**
181:          * Test get reference candidates.
182:          */
183:         @Test
184:         public void testGetReferenceCandidates() {
185:
186:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
187:
188:                 final EObject referenceObjectA = EcoreFactory.eINSTANCE.createEReference();
189:                 referenceObjectA.eSet(referenceObjectA.eClass().getEStructuralFeature("name"), "my little reference");
190:
191:                 final EObject referenceObjectB = EcoreFactory.eINSTANCE.createEReference();
192:                 referenceObjectB.eSet(referenceObjectB.eClass().getEStructuralFeature("name"), "my big reference");
193:
194:                 final EReference reference = (EReference) clazz.eClass().getEStructuralFeature(EcorePackage.EREFERENCE);
195:
196:                 project.getContents().add(clazz);
197:
198:                 assertFalse(project.getReferenceCandidates(clazz, reference).hasNext());
199:
200:                 project.getContents().add(referenceObjectA);
201:
202:                 Iterator<EObject> iterator = project.getReferenceCandidates(clazz, reference);
203:                 final List<EObject> objects = new ArrayList<EObject>(2);
204:•                while (iterator.hasNext()) {
205:                         objects.add(iterator.next());
206:                 }
207:
208:                 assertFalse(iterator.hasNext());
209:                 assertEquals(1, objects.size());
210:                 assertTrue(objects.contains(referenceObjectA));
211:                 objects.clear();
212:
213:                 project.getContents().add(referenceObjectB);
214:                 iterator = project.getReferenceCandidates(clazz, reference);
215:
216:•                while (iterator.hasNext()) {
217:                         objects.add(iterator.next());
218:                 }
219:
220:                 assertFalse(iterator.hasNext());
221:                 assertEquals(2, objects.size());
222:                 assertTrue(objects.contains(referenceObjectA));
223:                 assertTrue(objects.contains(referenceObjectB));
224:         }
225:
226:         /**
227:          * Test save properties.
228:          */
229:         @SuppressWarnings("deprecation")
230:         @Test
231:         public void testSaveProperties() {
232:                 project.saveProperties();
233:         }
234:
235:         /**
236:          * Test dirty save model.
237:          */
238:         @Test
239:         public void testDirtySaveModel() {
240:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
241:                 assertFalse(project.hasDirtyContents());
242:                 project.getContents().add(clazz);
243:                 assertTrue(project.hasDirtyContents());
244:                 project.saveContents();
245:                 assertFalse(project.hasDirtyContents());
246:         }
247:
248:         /**
249:          * Test delete elements.
250:          */
251:         @Test
252:         public void testDeleteElements() {
253:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
254:                 final EObject reference = EcoreFactory.eINSTANCE.createEReference();
255:                 final EObject attribute = EcoreFactory.eINSTANCE.createEAttribute();
256:
257:                 assertEquals(0, project.getContents().size());
258:                 project.getContents().add(clazz);
259:                 project.getContents().add(reference);
260:                 assertEquals(2, project.getContents().size());
261:
262:                 final Collection<Object> collection = new ArrayList<Object>();
263:                 collection.add(clazz);
264:                 project.deleteElements(collection);
265:                 assertEquals(1, project.getContents().size());
266:                 assertTrue(project.contains(reference));
267:                 assertFalse(project.contains(clazz));
268:
269:                 collection.clear();
270:                 collection.add(reference);
271:                 project.deleteElements(collection);
272:                 assertEquals(0, project.getContents().size());
273:
274:                 project.getContents().add(clazz);
275:                 project.getContents().add(reference);
276:                 project.getContents().add(attribute);
277:
278:                 collection.clear();
279:                 collection.add(clazz);
280:                 collection.add(reference);
281:                 collection.add(attribute);
282:
283:                 assertEquals(3, project.getContents().size());
284:                 project.deleteElements(collection);
285:                 assertEquals(0, project.getContents().size());
286:
287:                 boolean thrown = false;
288:                 try {
289:                         collection.clear();
290:                         collection.add(clazz);
291:                         project.deleteElements(collection);
292:                 } catch (final IllegalArgumentException iae) {
293:                         thrown = true;
294:                 }
295:                 assertTrue(thrown);
296:         }
297:
298:         /**
299:          * Checks if is modelroot.
300:          */
301:         @Test
302:         public void testIsModelroot() {
303:                 final EObject clazz = EcoreFactory.eINSTANCE.createEClass();
304:                 final EObject reference = EcoreFactory.eINSTANCE.createEReference();
305:                 final EObject attribute = EcoreFactory.eINSTANCE.createEAttribute();
306:
307:                 assertEquals(0, project.getContents().size());
308:                 project.getContents().add(clazz);
309:                 project.getContents().add(reference);
310:                 project.getContents().add(attribute);
311:                 assertEquals(3, project.getContents().size());
312:
313:                 assertFalse(project.isModelRoot(clazz));
314:                 assertFalse(project.isModelRoot(reference));
315:                 assertFalse(project.isModelRoot(attribute));
316:
317:                 assertTrue(project.isModelRoot(clazz.eContainer()));
318:         }
319: }