Skip to content

Package: RuleServiceGC_PTest

RuleServiceGC_PTest

nameinstructionbranchcomplexitylinemethod
RuleServiceGC_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%
createView()
M: 0 C: 60
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
instantiateRuleService(VView, EObject)
M: 0 C: 24
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
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: 10
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
testRemoveAndConditionOfEnableRule()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testRemoveAndConditionOfShowRule()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testRemoveEnableRule()
M: 0 C: 62
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testRemoveEnableRuleWithoutCondition()
M: 0 C: 49
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testRemoveLeafConditionOfEnableRule()
M: 0 C: 50
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testRemoveLeafConditionOfEnableRuleReevaluate()
M: 0 C: 75
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 14
100%
M: 0 C: 1
100%
testRemoveLeafConditionOfShowRule()
M: 0 C: 50
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testRemoveLeafConditionOfShowRuleReevaluate()
M: 0 C: 75
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 14
100%
M: 0 C: 1
100%
testRemoveOrConditionBOfEnableRuleReevaluate()
M: 0 C: 111
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 19
100%
M: 0 C: 1
100%
testRemoveOrConditionOfEnableRule()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testRemoveOrConditionOfShowRule()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testRemoveRenderableWithEnableRule()
M: 0 C: 51
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testRemoveRenderableWithShowRule()
M: 0 C: 51
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testRemoveShowRule()
M: 0 C: 62
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testRemoveShowRuleWithoutCondition()
M: 0 C: 50
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2013 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: * Edgar - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.rule.test;
15:
16: import static org.junit.Assert.assertFalse;
17: import static org.junit.Assert.assertTrue;
18:
19: import org.eclipse.emf.ecore.EObject;
20: import org.eclipse.emf.ecp.test.common.DefaultRealm;
21: import org.eclipse.emf.ecp.view.internal.rule.RuleService;
22: import org.eclipse.emf.ecp.view.internal.rule.RuleServiceHelperImpl;
23: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
24: import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
25: import org.eclipse.emf.ecp.view.spi.model.VControl;
26: import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
27: import org.eclipse.emf.ecp.view.spi.model.VView;
28: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
29: import org.eclipse.emf.ecp.view.spi.rule.model.EnableRule;
30: import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
31: import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
32: import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
33: import org.eclipse.emf.ecp.view.test.common.spi.GCCollectable;
34: import org.eclipse.emf.ecp.view.test.common.spi.Tuple;
35: import org.eclipse.emf.emfstore.bowling.BowlingFactory;
36: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
37: import org.eclipse.emf.emfstore.bowling.Fan;
38: import org.eclipse.emf.emfstore.bowling.Merchandise;
39: import org.junit.After;
40: import org.junit.Before;
41: import org.junit.Test;
42:
43: public class RuleServiceGC_PTest extends CommonRuleTest {
44:
45:         private ViewModelContext context;
46:         private DefaultRealm realm;
47:
48:         private Tuple<VView, Fan> createView() {
49:                 final Merchandise merchandise = BowlingFactory.eINSTANCE.createMerchandise();
50:                 final Fan fan = BowlingFactory.eINSTANCE.createFan();
51:                 fan.setFavouriteMerchandise(merchandise);
52:
53:                 final VView view = VViewFactory.eINSTANCE.createView();
54:                 view.setRootEClass(fan.eClass());
55:
56:                 final VVerticalLayout parentColumn = VVerticalFactory.eINSTANCE.createVerticalLayout();
57:                 view.getChildren().add(parentColumn);
58:
59:                 final VVerticalLayout column = VVerticalFactory.eINSTANCE.createVerticalLayout();
60:                 parentColumn.getChildren().add(column);
61:
62:                 final VControl controlPName = VViewFactory.eINSTANCE.createControl();
63:
64:                 final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
65:                         .createFeaturePathDomainModelReference();
66:                 domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
67:                 domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
68:                 controlPName.setDomainModelReference(domainModelReference);
69:
70:                 column.getChildren().add(controlPName);
71:                 return Tuple.create(view, fan);
72:         }
73:
74:         @Before
75:         public void setup() {
76:                 realm = new DefaultRealm();
77:         }
78:
79:         /**
80:          * Tear down.
81:          *
82:          * @throws Exception the exception
83:          */
84:         @After
85:         public void tearDown() throws Exception {
86:•                if (context != null) {
87:                         context.dispose();
88:                 }
89:                 realm.dispose();
90:         }
91:
92:         /**
93:          * Instantiate rule service.
94:          *
95:          * @return the rule service
96:          */
97:         private RuleService instantiateRuleService(VView view, final EObject domainModel) {
98:                 final RuleService ruleService = new RuleService();
99:                 final RuleServiceHelperImpl ruleServiceHelper = new RuleServiceHelperImpl();
100:                 context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainModel);
101:                 ruleService.instantiate(context);
102:                 ruleServiceHelper.instantiate(context);
103:                 return ruleService;
104:         }
105:
106:         @Test
107:         public void testRemoveShowRule() {
108:                 final Tuple<VView, Fan> tuple = createView();
109:                 final VView view = tuple.first();
110:                 final Fan fan = tuple.second();
111:                 fan.setName("foo");
112:                 addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
113:                 final GCCollectable collectable = new GCCollectable(
114:                         view.getChildren().get(0).getAttachments().get(0));
115:                 instantiateRuleService(view, fan);
116:                 view.getChildren().get(0).getAttachments().remove(0);
117:
118:                 assertTrue(collectable.isCollectable());
119:                 assertTrue(view.getChildren().get(0).isVisible());
120:         }
121:
122:         @Test
123:         public void testRemoveShowRuleWithoutCondition() {
124:                 final Tuple<VView, Fan> tuple = createView();
125:                 final VView view = tuple.first();
126:                 final Fan fan = tuple.second();
127:                 addShowRule(view.getChildren().get(0), false);
128:                 final GCCollectable collectable = new GCCollectable(
129:                         view.getChildren().get(0).getAttachments().get(0));
130:                 instantiateRuleService(view, fan);
131:                 view.getChildren().get(0).getAttachments().remove(0);
132:                 assertTrue(collectable.isCollectable());
133:         }
134:
135:         @Test
136:         public void testRemoveEnableRuleWithoutCondition() {
137:                 final Tuple<VView, Fan> tuple = createView();
138:                 final VView view = tuple.first();
139:                 final Fan fan = tuple.second();
140:                 addEnableRule(view.getChildren().get(0), false);
141:                 final GCCollectable collectable = new GCCollectable(
142:                         view.getChildren().get(0).getAttachments().get(0));
143:                 instantiateRuleService(view, fan);
144:                 view.getChildren().get(0).getAttachments().remove(0);
145:                 assertTrue(collectable.isCollectable());
146:         }
147:
148:         @Test
149:         public void testRemoveEnableRule() {
150:                 final Tuple<VView, Fan> tuple = createView();
151:                 final VView view = tuple.first();
152:                 final Fan fan = tuple.second();
153:                 fan.setName("foo");
154:                 addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
155:                 final GCCollectable collectable = new GCCollectable(
156:                         view.getChildren().get(0).getAttachments().get(0));
157:                 instantiateRuleService(view, fan);
158:                 view.getChildren().get(0).getAttachments().remove(0);
159:
160:                 assertTrue(collectable.isCollectable());
161:                 assertTrue(view.getChildren().get(0).isEnabled());
162:         }
163:
164:         @Test
165:         public void testRemoveLeafConditionOfShowRuleReevaluate() {
166:                 final Tuple<VView, Fan> tuple = createView();
167:                 final VView view = tuple.first();
168:                 final Fan fan = tuple.second();
169:                 fan.setName("foo");
170:                 addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
171:                 final GCCollectable collectable = new GCCollectable(
172:                         ((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
173:                 instantiateRuleService(view, fan);
174:                 final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
175:
176:                 assertFalse(view.getChildren().get(0).isVisible());
177:                 showRule.setCondition(null);
178:                 assertTrue(collectable.isCollectable());
179:                 assertTrue(view.getChildren().get(0).isVisible());
180:         }
181:
182:         @Test
183:         public void testRemoveAndConditionOfShowRule() {
184:                 final Tuple<VView, Fan> tuple = createView();
185:                 final VView view = tuple.first();
186:                 final Fan fan = tuple.second();
187:                 addLeagueShowRuleWithAndCondition(view.getChildren().get(0), false,
188:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
189:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
190:
191:                 final GCCollectable collectable = new GCCollectable(
192:                         ((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
193:                 instantiateRuleService(view, fan);
194:                 final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
195:                 showRule.setCondition(null);
196:                 assertTrue(collectable.isCollectable());
197:         }
198:
199:         @Test
200:         public void testRemoveAndConditionOfEnableRule() {
201:                 final Tuple<VView, Fan> tuple = createView();
202:                 final VView view = tuple.first();
203:                 final Fan fan = tuple.second();
204:                 addLeagueEnableRuleWithAndCondition(view.getChildren().get(0), false,
205:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
206:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
207:
208:                 final GCCollectable collectable = new GCCollectable(
209:                         ((EnableRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
210:                 instantiateRuleService(view, fan);
211:                 final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
212:                 enableRule.setCondition(null);
213:                 assertTrue(collectable.isCollectable());
214:         }
215:
216:         @Test
217:         public void testRemoveOrConditionOfEnableRule() {
218:                 final Tuple<VView, Fan> tuple = createView();
219:                 final VView view = tuple.first();
220:                 final Fan fan = tuple.second();
221:                 addLeagueShowRuleWithOrCondition(view.getChildren().get(0), false,
222:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
223:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
224:
225:                 final GCCollectable collectable = new GCCollectable(
226:                         ((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
227:                 instantiateRuleService(view, fan);
228:                 final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
229:                 showRule.setCondition(null);
230:                 assertTrue(collectable.isCollectable());
231:         }
232:
233:         @Test
234:         public void testRemoveLeafConditionOfEnableRule() {
235:                 final Tuple<VView, Fan> tuple = createView();
236:                 final VView view = tuple.first();
237:                 final Fan fan = tuple.second();
238:                 addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
239:                 final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
240:                 final GCCollectable collectable = new GCCollectable(enableRule.getCondition());
241:                 instantiateRuleService(view, fan);
242:                 enableRule.setCondition(null);
243:                 assertTrue(collectable.isCollectable());
244:         }
245:
246:         @Test
247:         public void testRemoveLeafConditionOfShowRule() {
248:                 final Tuple<VView, Fan> tuple = createView();
249:                 final VView view = tuple.first();
250:                 final Fan fan = tuple.second();
251:                 addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
252:                 final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
253:                 final GCCollectable collectable = new GCCollectable(showRule.getCondition());
254:                 instantiateRuleService(view, fan);
255:                 showRule.setCondition(null);
256:                 assertTrue(collectable.isCollectable());
257:         }
258:
259:         @Test
260:         public void testRemoveLeafConditionOfEnableRuleReevaluate() {
261:                 final Tuple<VView, Fan> tuple = createView();
262:                 final VView view = tuple.first();
263:                 final Fan fan = tuple.second();
264:                 fan.setName("foo");
265:                 addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
266:                 final GCCollectable collectable = new GCCollectable(
267:                         ((EnableRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
268:                 instantiateRuleService(view, fan);
269:                 final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
270:
271:                 assertFalse(view.getChildren().get(0).isEnabled());
272:                 enableRule.setCondition(null);
273:                 assertTrue(collectable.isCollectable());
274:                 assertTrue(view.getChildren().get(0).isEnabled());
275:         }
276:
277:         @Test
278:         public void testRemoveOrConditionOfShowRule() {
279:                 final Tuple<VView, Fan> tuple = createView();
280:                 final VView view = tuple.first();
281:                 final Fan fan = tuple.second();
282:
283:                 addLeagueShowRuleWithOrCondition(view.getChildren().get(0), false,
284:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
285:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
286:
287:                 final GCCollectable collectable = new GCCollectable(
288:                         ((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
289:                 instantiateRuleService(view, fan);
290:                 final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
291:                 showRule.setCondition(null);
292:                 assertTrue(collectable.isCollectable());
293:         }
294:
295:         @Test
296:         public void testRemoveOrConditionBOfEnableRuleReevaluate() {
297:                 final Tuple<VView, Fan> tuple = createView();
298:                 final VView view = tuple.first();
299:                 final Fan fan = tuple.second();
300:                 fan.setName("foo");
301:
302:                 addLeagueEnableRuleWithOrCondition(view.getChildren().get(0), false,
303:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "foo"),
304:                         createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
305:
306:                 final GCCollectable collectable = new GCCollectable(
307:                         EnableRule.class.cast(view.getChildren().get(0).getAttachments().get(0)).getCondition());
308:                 final GCCollectable ruleCollectable = new GCCollectable(
309:                         view.getChildren().get(0).getAttachments().get(0));
310:
311:                 instantiateRuleService(view, fan);
312:                 final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
313:
314:                 assertFalse(view.getChildren().get(0).isEnabled());
315:                 enableRule.setCondition(null);
316:                 assertTrue(collectable.isCollectable());
317:                 assertFalse(ruleCollectable.isCollectable());
318:                 assertTrue(view.getChildren().get(0).isEnabled());
319:         }
320:
321:         @Test
322:         public void testRemoveRenderableWithShowRule() {
323:                 final Tuple<VView, Fan> tuple = createView();
324:                 final VView view = tuple.first();
325:                 final Fan fan = tuple.second();
326:                 addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
327:                 final GCCollectable collectable = new GCCollectable(
328:                         view.getChildren().get(0).getAttachments().get(0));
329:                 instantiateRuleService(view, fan);
330:                 view.getChildren().remove(view.getChildren().get(0));
331:                 assertTrue(collectable.isCollectable());
332:         }
333:
334:         @Test
335:         public void testRemoveRenderableWithEnableRule() {
336:                 final Tuple<VView, Fan> tuple = createView();
337:                 final VView view = tuple.first();
338:                 final Fan fan = tuple.second();
339:                 addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
340:                 final GCCollectable collectable = new GCCollectable(
341:                         view.getChildren().get(0).getAttachments().get(0));
342:                 instantiateRuleService(view, fan);
343:                 view.getChildren().remove(view.getChildren().get(0));
344:                 assertTrue(collectable.isCollectable());
345:         }
346:
347: }