Skip to content

Package: CategorizationTreeContentRefresh_PTest

CategorizationTreeContentRefresh_PTest

nameinstructionbranchcomplexitylinemethod
CategorizationTreeContentRefresh_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%
createShowRule(EStructuralFeature, Object)
M: 0 C: 19
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
getDomainModelReference(EStructuralFeature)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
getTree(Control)
M: 0 C: 13
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
setUp()
M: 0 C: 133
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 27
100%
M: 0 C: 1
100%
static {...}
M: 0 C: 13
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
tearDown()
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testHideAllDynamic()
M: 0 C: 111
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 19
100%
M: 0 C: 1
100%
testHideAllOnInit()
M: 0 C: 26
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
testHideCategorizationDynamic()
M: 0 C: 109
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 18
100%
M: 0 C: 1
100%
testHideCategorizationWithChildOnInit()
M: 0 C: 31
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
testHideRootCategoryDynamic()
M: 0 C: 138
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 21
100%
M: 0 C: 1
100%
testHideSubCategoryDynamic()
M: 0 C: 126
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 20
100%
M: 0 C: 1
100%
testShowAllDynamic()
M: 0 C: 95
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 16
100%
M: 0 C: 1
100%
testShowAllOnInit()
M: 0 C: 75
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testShowCategorizationDynamic()
M: 0 C: 57
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testShowCategorizationWithChildOnInit()
M: 0 C: 62
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testShowCategorizationWithoutChildOnInit()
M: 0 C: 46
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
testShowCategoryAndCategorizationWithoutChildOnInit()
M: 0 C: 59
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testShowRootCategoryDynamic()
M: 0 C: 50
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testShowRootCategoryHideCategorizationWithChildOnInit()
M: 0 C: 44
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
testShowRootCategoryHideCategorizationWithoutChildOnInit()
M: 0 C: 39
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
testShowSubCategoryDynamic()
M: 0 C: 82
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 14
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: * Eugen Neufeld - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.categorization.swt.test;
15:
16: import static org.junit.Assert.assertEquals;
17:
18: import org.eclipse.emf.ecore.EStructuralFeature;
19: import org.eclipse.emf.ecp.ui.view.ECPRendererException;
20: import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
21: import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
22: import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
23: import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
24: import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationFactory;
25: import org.eclipse.emf.ecp.view.spi.categorization.model.VCategory;
26: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
27: import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
28: import org.eclipse.emf.ecp.view.spi.model.VControl;
29: import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
30: import org.eclipse.emf.ecp.view.spi.model.VView;
31: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
32: import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
33: import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
34: import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
35: import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
36: import org.eclipse.emf.emfstore.bowling.BowlingFactory;
37: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
38: import org.eclipse.emf.emfstore.bowling.Player;
39: import org.eclipse.swt.SWT;
40: import org.eclipse.swt.layout.GridData;
41: import org.eclipse.swt.layout.GridLayout;
42: import org.eclipse.swt.widgets.Composite;
43: import org.eclipse.swt.widgets.Control;
44: import org.eclipse.swt.widgets.Display;
45: import org.eclipse.swt.widgets.Shell;
46: import org.eclipse.swt.widgets.Tree;
47: import org.junit.After;
48: import org.junit.Before;
49: import org.junit.Test;
50: import org.junit.runner.RunWith;
51:
52: /**
53: * @author Eugen Neufeld
54: *
55: */
56: @RunWith(DatabindingClassRunner.class)
57: public class CategorizationTreeContentRefresh_PTest {
58:
59:         private static final String EXPECTED_NAME = "test"; //$NON-NLS-1$
60:         private static final Double EXPECTED_HEIGHT = 1.0;
61:         private static final Boolean EXPECTED_PROF = true;
62:
63:         private static final String NOT_EXPECTED_NAME = "testX"; //$NON-NLS-1$
64:         private static final Double NOT_EXPECTED_HEIGHT = 2.0;
65:         private static final Boolean NOT_EXPECTED_PROF = false;
66:
67:         private Player player;
68:         private VView view;
69:         private VCategorization categorization;
70:         private VCategory category1;
71:         private VCategory category2;
72:         private ECPSWTView ecpSwtView;
73:         private Shell shell;
74:
75:         /**
76:          * @throws java.lang.Exception
77:          */
78:         @Before
79:         public void setUp() throws Exception {
80:                 view = VViewFactory.eINSTANCE.createView();
81:
82:                 final VCategorizationElement categorizationElement = VCategorizationFactory.eINSTANCE
83:                         .createCategorizationElement();
84:                 categorization = VCategorizationFactory.eINSTANCE.createCategorization();
85:
86:                 category1 = VCategorizationFactory.eINSTANCE.createCategory();
87:                 category2 = VCategorizationFactory.eINSTANCE.createCategory();
88:
89:                 categorization.getCategorizations().add(category1);
90:
91:                 categorizationElement.getCategorizations().add(categorization);
92:                 categorizationElement.getCategorizations().add(category2);
93:
94:                 view.getChildren().add(categorizationElement);
95:
96:                 {
97:                         final VControl control1 = VViewFactory.eINSTANCE.createControl();
98:
99:                         control1.setDomainModelReference(getDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_Name()));
100:                         category1.setComposite(control1);
101:                 }
102:                 {
103:                         final VControl control1 = VViewFactory.eINSTANCE.createControl();
104:                         control1.setDomainModelReference(getDomainModelReference(BowlingPackage.eINSTANCE.getPlayer_Name()));
105:                         category2.setComposite(control1);
106:                 }
107:
108:                 player = BowlingFactory.eINSTANCE.createPlayer();
109:
110:                 shell = new Shell(Display.getDefault());
111:                 shell.setLayout(new GridLayout(1, false));
112:                 // shell.open();
113:
114:                 categorization.getAttachments().add(createShowRule(BowlingPackage.eINSTANCE.getPlayer_Name(), EXPECTED_NAME));
115:                 category1.getAttachments().add(createShowRule(BowlingPackage.eINSTANCE.getPlayer_Height(), EXPECTED_HEIGHT));
116:                 category2.getAttachments().add(
117:                         createShowRule(BowlingPackage.eINSTANCE.getPlayer_IsProfessional(), EXPECTED_PROF));
118:
119:                 player.setName(NOT_EXPECTED_NAME);
120:                 player.setHeight(NOT_EXPECTED_HEIGHT);
121:                 player.setIsProfessional(NOT_EXPECTED_PROF);
122:         }
123:
124:         /**
125:          * @param player_Name
126:          * @return
127:          */
128:         private ShowRule createShowRule(EStructuralFeature feature, Object expected) {
129:                 final ShowRule showRuleCategorization = RuleFactory.eINSTANCE.createShowRule();
130:                 final LeafCondition leafCondition = RuleFactory.eINSTANCE.createLeafCondition();
131:                 leafCondition.setDomainModelReference(getDomainModelReference(feature));
132:                 showRuleCategorization.setCondition(leafCondition);
133:                 leafCondition.setExpectedValue(expected);
134:                 return showRuleCategorization;
135:         }
136:
137:         private VFeaturePathDomainModelReference getDomainModelReference(EStructuralFeature feature) {
138:                 final VFeaturePathDomainModelReference featurePathDomainModelReference = VViewFactory.eINSTANCE
139:                         .createFeaturePathDomainModelReference();
140:                 featurePathDomainModelReference.setDomainModelEFeature(feature);
141:                 return featurePathDomainModelReference;
142:         }
143:
144:         /**
145:          * @throws java.lang.Exception
146:          */
147:         @After
148:         public void tearDown() throws Exception {
149:                 ecpSwtView.dispose();
150:                 shell.close();
151:                 shell.dispose();
152:         }
153:
154:         /**
155:          * @param swtControl
156:          * @return
157:          */
158:         private Tree getTree(Control swtControl) {
159:                 final Composite composite = (Composite) swtControl;
160:                 return (Tree) ((Composite) composite.getChildren()[0]).getChildren()[0];
161:         }
162:
163:         @Test
164:         public void testHideAllOnInit() throws ECPRendererException {
165:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
166:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
167:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
168:
169:                 // assert
170:                 assertEquals(0, tree.getItemCount());
171:         }
172:
173:         @Test
174:         public void testShowAllOnInit() throws ECPRendererException {
175:                 player.setName(EXPECTED_NAME);
176:                 player.setHeight(EXPECTED_HEIGHT);
177:                 player.setIsProfessional(EXPECTED_PROF);
178:
179:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
180:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
181:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
182:
183:                 // assert
184:                 assertEquals(2, tree.getItemCount());
185:                 assertEquals(categorization, tree.getItems()[0].getData());
186:                 assertEquals(1, tree.getItems()[0].getItemCount());
187:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
188:                 assertEquals(category2, tree.getItems()[1].getData());
189:         }
190:
191:         @Test
192:         public void testShowCategorizationWithoutChildOnInit() throws ECPRendererException {
193:                 player.setName(EXPECTED_NAME);
194:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
195:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
196:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
197:
198:                 // assert
199:                 assertEquals(1, tree.getItemCount());
200:                 assertEquals(categorization, tree.getItems()[0].getData());
201:                 assertEquals(0, tree.getItems()[0].getItemCount());
202:         }
203:
204:         @Test
205:         public void testShowCategorizationWithChildOnInit() throws ECPRendererException {
206:                 player.setName(EXPECTED_NAME);
207:                 player.setHeight(EXPECTED_HEIGHT);
208:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
209:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
210:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
211:
212:                 // assert
213:                 assertEquals(1, tree.getItemCount());
214:                 assertEquals(categorization, tree.getItems()[0].getData());
215:                 assertEquals(1, tree.getItems()[0].getItemCount());
216:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
217:         }
218:
219:         @Test
220:         public void testShowCategoryAndCategorizationWithoutChildOnInit() throws ECPRendererException {
221:                 player.setName(EXPECTED_NAME);
222:                 player.setIsProfessional(EXPECTED_PROF);
223:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
224:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
225:
226:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
227:
228:                 // assert
229:                 assertEquals(2, tree.getItemCount());
230:                 assertEquals(categorization, tree.getItems()[0].getData());
231:                 assertEquals(0, tree.getItems()[0].getItemCount());
232:                 assertEquals(category2, tree.getItems()[1].getData());
233:         }
234:
235:         @Test
236:         public void testHideCategorizationWithChildOnInit() throws ECPRendererException {
237:                 player.setHeight(EXPECTED_HEIGHT);
238:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
239:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
240:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
241:
242:                 // assert
243:                 assertEquals(0, tree.getItemCount());
244:         }
245:
246:         @Test
247:         public void testShowRootCategoryHideCategorizationWithChildOnInit() throws ECPRendererException {
248:                 player.setHeight(EXPECTED_HEIGHT);
249:                 player.setIsProfessional(EXPECTED_PROF);
250:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
251:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
252:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
253:
254:                 // assert
255:                 assertEquals(1, tree.getItemCount());
256:                 assertEquals(category2, tree.getItems()[0].getData());
257:         }
258:
259:         @Test
260:         public void testShowRootCategoryHideCategorizationWithoutChildOnInit() throws ECPRendererException {
261:                 player.setIsProfessional(EXPECTED_PROF);
262:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
263:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
264:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
265:
266:                 // assert
267:                 assertEquals(1, tree.getItemCount());
268:                 assertEquals(category2, tree.getItems()[0].getData());
269:         }
270:
271:         @Test
272:         public void testHideAllDynamic() throws ECPRendererException {
273:                 player.setName(EXPECTED_NAME);
274:                 player.setHeight(EXPECTED_HEIGHT);
275:                 player.setIsProfessional(EXPECTED_PROF);
276:
277:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
278:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
279:                 ecpSwtView.getSWTControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
280:                 shell.open();
281:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
282:
283:                 // assert init state
284:                 assertEquals(2, tree.getItemCount());
285:                 assertEquals(categorization, tree.getItems()[0].getData());
286:                 assertEquals(1, tree.getItems()[0].getItemCount());
287:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
288:                 assertEquals(category2, tree.getItems()[1].getData());
289:
290:                 // change state
291:                 player.setName(NOT_EXPECTED_NAME);
292:                 player.setHeight(NOT_EXPECTED_HEIGHT);
293:                 player.setIsProfessional(NOT_EXPECTED_PROF);
294:
295:•                while (Display.getDefault().readAndDispatch()) {
296:                 }
297:                 // assert
298:                 assertEquals(0, tree.getItemCount());
299:         }
300:
301:         @Test
302:         public void testHideCategorizationDynamic() throws ECPRendererException {
303:                 player.setName(EXPECTED_NAME);
304:                 player.setHeight(EXPECTED_HEIGHT);
305:                 player.setIsProfessional(EXPECTED_PROF);
306:
307:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
308:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
309:                 ecpSwtView.getSWTControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
310:                 shell.open();
311:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
312:
313:                 // assert init state
314:                 assertEquals(2, tree.getItemCount());
315:                 assertEquals(categorization, tree.getItems()[0].getData());
316:                 assertEquals(1, tree.getItems()[0].getItemCount());
317:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
318:                 assertEquals(category2, tree.getItems()[1].getData());
319:
320:                 // change state
321:                 player.setName(NOT_EXPECTED_NAME);
322:
323:•                while (Display.getDefault().readAndDispatch()) {
324:                 }
325:                 // assert
326:                 assertEquals(1, tree.getItemCount());
327:                 assertEquals(category2, tree.getItems()[0].getData());
328:         }
329:
330:         @Test
331:         public void testHideSubCategoryDynamic() throws ECPRendererException {
332:                 player.setName(EXPECTED_NAME);
333:                 player.setHeight(EXPECTED_HEIGHT);
334:                 player.setIsProfessional(EXPECTED_PROF);
335:
336:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
337:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
338:                 ecpSwtView.getSWTControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
339:                 shell.open();
340:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
341:
342:                 // assert init state
343:                 assertEquals(2, tree.getItemCount());
344:                 assertEquals(categorization, tree.getItems()[0].getData());
345:                 assertEquals(1, tree.getItems()[0].getItemCount());
346:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
347:                 assertEquals(category2, tree.getItems()[1].getData());
348:
349:                 // change state
350:                 player.setHeight(NOT_EXPECTED_HEIGHT);
351:
352:•                while (Display.getDefault().readAndDispatch()) {
353:                 }
354:                 // assert
355:                 assertEquals(2, tree.getItemCount());
356:                 assertEquals(categorization, tree.getItems()[0].getData());
357:                 assertEquals(0, tree.getItems()[0].getItemCount());
358:                 assertEquals(category2, tree.getItems()[1].getData());
359:         }
360:
361:         @Test
362:         public void testHideRootCategoryDynamic() throws ECPRendererException {
363:                 player.setName(EXPECTED_NAME);
364:                 player.setHeight(EXPECTED_HEIGHT);
365:                 player.setIsProfessional(EXPECTED_PROF);
366:
367:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
368:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
369:                 ecpSwtView.getSWTControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
370:                 shell.open();
371:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
372:
373:                 // assert init state
374:                 assertEquals(2, tree.getItemCount());
375:                 assertEquals(categorization, tree.getItems()[0].getData());
376:                 assertEquals(1, tree.getItems()[0].getItemCount());
377:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
378:                 assertEquals(category2, tree.getItems()[1].getData());
379:
380:                 // change state
381:                 player.setIsProfessional(NOT_EXPECTED_PROF);
382:
383:•                while (Display.getDefault().readAndDispatch()) {
384:                 }
385:                 // assert
386:                 assertEquals(1, tree.getItemCount());
387:                 assertEquals(categorization, tree.getItems()[0].getData());
388:                 assertEquals(1, tree.getItems()[0].getItemCount());
389:                 tree.showItem(tree.getItems()[0].getItems()[0]);
390:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
391:         }
392:
393:         @Test
394:         public void testShowAllDynamic() throws ECPRendererException {
395:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
396:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
397:
398:                 shell.open();
399:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
400:
401:                 // assert init state
402:                 assertEquals(0, tree.getItemCount());
403:
404:                 // change state
405:                 player.setName(EXPECTED_NAME);
406:                 player.setHeight(EXPECTED_HEIGHT);
407:                 player.setIsProfessional(EXPECTED_PROF);
408:
409:•                while (Display.getDefault().readAndDispatch()) {
410:                 }
411:
412:                 // assert
413:                 assertEquals(2, tree.getItemCount());
414:                 assertEquals(categorization, tree.getItems()[0].getData());
415:                 assertEquals(1, tree.getItems()[0].getItemCount());
416:                 tree.showItem(tree.getItems()[0].getItems()[0]);
417:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
418:                 assertEquals(category2, tree.getItems()[1].getData());
419:         }
420:
421:         @Test
422:         public void testShowCategorizationDynamic() throws ECPRendererException {
423:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
424:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
425:
426:                 shell.open();
427:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
428:
429:                 // assert init state
430:                 assertEquals(0, tree.getItemCount());
431:
432:                 // change state
433:                 player.setName(EXPECTED_NAME);
434:
435:•                while (Display.getDefault().readAndDispatch()) {
436:                 }
437:
438:                 // assert
439:                 assertEquals(1, tree.getItemCount());
440:                 assertEquals(categorization, tree.getItems()[0].getData());
441:                 assertEquals(0, tree.getItems()[0].getItemCount());
442:         }
443:
444:         @Test
445:         public void testShowSubCategoryDynamic() throws ECPRendererException {
446:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
447:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
448:
449:                 shell.open();
450:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
451:
452:                 // assert init state
453:                 assertEquals(0, tree.getItemCount());
454:
455:                 // change state
456:                 player.setName(EXPECTED_NAME);
457:                 player.setHeight(EXPECTED_HEIGHT);
458:
459:•                while (Display.getDefault().readAndDispatch()) {
460:                 }
461:
462:                 // assert
463:                 assertEquals(1, tree.getItemCount());
464:                 assertEquals(categorization, tree.getItems()[0].getData());
465:                 assertEquals(1, tree.getItems()[0].getItemCount());
466:                 tree.showItem(tree.getItems()[0].getItems()[0]);
467:                 assertEquals(category1, tree.getItems()[0].getItems()[0].getData());
468:         }
469:
470:         @Test
471:         public void testShowRootCategoryDynamic() throws ECPRendererException {
472:                 final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, player);
473:                 ecpSwtView = ECPSWTViewRenderer.INSTANCE.render(shell, vmc);
474:
475:                 shell.open();
476:                 final Tree tree = getTree(ecpSwtView.getSWTControl());
477:
478:                 // assert init state
479:                 assertEquals(0, tree.getItemCount());
480:
481:                 // change state
482:                 player.setIsProfessional(EXPECTED_PROF);
483:
484:•                while (Display.getDefault().readAndDispatch()) {
485:                 }
486:
487:                 // assert
488:                 assertEquals(1, tree.getItemCount());
489:                 assertEquals(category2, tree.getItems()[0].getData());
490:         }
491: }