Skip to content

Package: TreeMasterDetailValidation_ITest

TreeMasterDetailValidation_ITest

nameinstructionbranchcomplexitylinemethod
TreeMasterDetailValidation_ITest()
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: 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%
testInvalidChildAddInvalidSubChild()
M: 0 C: 117
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 26
100%
M: 0 C: 1
100%
testInvalidChildAddValidSubChild()
M: 0 C: 87
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
100%
M: 0 C: 1
100%
testInvalidChildInvalidSubChild()
M: 0 C: 117
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 26
100%
M: 0 C: 1
100%
testInvalidChildToValid()
M: 0 C: 61
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 16
100%
M: 0 C: 1
100%
testInvalidChildValidSubChild()
M: 0 C: 87
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
100%
M: 0 C: 1
100%
testInvalidRoot()
M: 0 C: 40
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testInvalidRootAddInvalidChild()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 18
100%
M: 0 C: 1
100%
testInvalidRootAddInvalidSubTree1()
M: 0 C: 95
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 22
100%
M: 0 C: 1
100%
testInvalidRootAddInvalidSubTree2()
M: 0 C: 106
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 24
100%
M: 0 C: 1
100%
testInvalidRootAddValidChild()
M: 0 C: 58
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 15
100%
M: 0 C: 1
100%
testInvalidRootAddValidSubTree()
M: 0 C: 76
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 19
100%
M: 0 C: 1
100%
testInvalidRootInvalidChild()
M: 0 C: 77
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 18
100%
M: 0 C: 1
100%
testInvalidRootToValid()
M: 0 C: 43
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testInvalidRootValidChild()
M: 0 C: 69
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
testValidChildAddInvalidSubChild()
M: 0 C: 98
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 23
100%
M: 0 C: 1
100%
testValidChildAddValidSubChild()
M: 0 C: 79
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 20
100%
M: 0 C: 1
100%
testValidChildInvalidSubChild()
M: 0 C: 98
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 23
100%
M: 0 C: 1
100%
testValidChildToInvalid()
M: 0 C: 75
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 19
100%
M: 0 C: 1
100%
testValidChildValidSubChild()
M: 0 C: 79
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 20
100%
M: 0 C: 1
100%
testValidChildWithSubChildAddInvalidSibling()
M: 0 C: 116
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 27
100%
M: 0 C: 1
100%
testValidRoot()
M: 0 C: 43
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testValidRootAddInvalidChild()
M: 0 C: 69
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
testValidRootAddInvalidSubTree()
M: 0 C: 87
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
100%
M: 0 C: 1
100%
testValidRootAddInvalidSubTree2()
M: 0 C: 98
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 23
100%
M: 0 C: 1
100%
testValidRootAddValidChild()
M: 0 C: 61
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 16
100%
M: 0 C: 1
100%
testValidRootAddValidChildToInvalid()
M: 0 C: 75
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 19
100%
M: 0 C: 1
100%
testValidRootAddValidSubTree()
M: 0 C: 79
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 20
100%
M: 0 C: 1
100%
testValidRootInvalidChild()
M: 0 C: 69
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
testValidRootInvalidChildren()
M: 0 C: 87
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
100%
M: 0 C: 1
100%
testValidRootToInvalid()
M: 0 C: 46
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testValidRootValidChild()
M: 0 C: 61
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 16
100%
M: 0 C: 1
100%
testValidRootWithChildAddInvalidSibling()
M: 0 C: 87
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
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 Neufeld - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.treemasterdetail.validation.test;
15:
16: import static org.junit.Assert.assertEquals;
17:
18: import org.eclipse.emf.common.util.Diagnostic;
19: import org.eclipse.emf.ecp.test.common.DefaultRealm;
20: import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
21: import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
22: import org.eclipse.emf.ecp.view.spi.model.VView;
23: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
24: import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
25: import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetailFactory;
26: import org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.ChildLevel1;
27: import org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.ChildLevel2;
28: import org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.Root;
29: import org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.TestTMDFactory;
30: import org.junit.After;
31: import org.junit.Before;
32: import org.junit.Test;
33:
34: /**
35: * Validation tests for TreeMasterDetail.
36: *
37: * @author Eugen Neufeld
38: *
39: */
40: public class TreeMasterDetailValidation_ITest {
41:
42:         private static final String VALID_NAME = "test"; //$NON-NLS-1$
43:
44:         private DefaultRealm defaultRealm;
45:
46:         @Before
47:         public void setup() {
48:                 defaultRealm = new DefaultRealm();
49:         }
50:
51:         @After
52:         public void tearDown() {
53:                 defaultRealm.dispose();
54:         }
55:
56:         @Test
57:         public void testInvalidRoot() {
58:                 final VView view = VViewFactory.eINSTANCE.createView();
59:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
60:                 view.setRootEClass(root.eClass());
61:
62:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
63:                         .createTreeMasterDetail();
64:
65:                 view.getChildren().add(control);
66:
67:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
68:
69:                 final VDiagnostic diagnostic = control.getDiagnostic();
70:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
71:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
72:         }
73:
74:         @Test
75:         public void testValidRoot() {
76:                 final VView view = VViewFactory.eINSTANCE.createView();
77:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
78:                 root.setName(VALID_NAME);
79:                 view.setRootEClass(root.eClass());
80:
81:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
82:                         .createTreeMasterDetail();
83:
84:                 view.getChildren().add(control);
85:
86:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
87:
88:                 final VDiagnostic diagnostic = control.getDiagnostic();
89:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
90:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
91:         }
92:
93:         @Test
94:         public void testInvalidRootInvalidChild() {
95:                 final VView view = VViewFactory.eINSTANCE.createView();
96:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
97:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
98:                 root.getChildren().add(childLevel1);
99:
100:                 view.setRootEClass(root.eClass());
101:
102:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
103:                         .createTreeMasterDetail();
104:
105:                 view.getChildren().add(control);
106:
107:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
108:
109:                 final VDiagnostic diagnostic = control.getDiagnostic();
110:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
111:                 assertEquals(2, diagnostic.getDiagnostics(root).size());
112:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
113:                         .getData().get(0));
114:                 assertEquals(root, diagnostic.getDiagnostics(root).get(1).getData()
115:                         .get(0));
116:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
117:         }
118:
119:         @Test
120:         public void testValidRootInvalidChild() {
121:                 final VView view = VViewFactory.eINSTANCE.createView();
122:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
123:                 root.setName(VALID_NAME);
124:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
125:                 root.getChildren().add(childLevel1);
126:                 view.setRootEClass(root.eClass());
127:
128:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
129:                         .createTreeMasterDetail();
130:
131:                 view.getChildren().add(control);
132:
133:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
134:
135:                 final VDiagnostic diagnostic = control.getDiagnostic();
136:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
137:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
138:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
139:                         .getData().get(0));
140:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
141:         }
142:
143:         @Test
144:         public void testInvalidRootValidChild() {
145:                 final VView view = VViewFactory.eINSTANCE.createView();
146:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
147:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
148:                 childLevel1.setName(VALID_NAME);
149:                 root.getChildren().add(childLevel1);
150:
151:                 view.setRootEClass(root.eClass());
152:
153:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
154:                         .createTreeMasterDetail();
155:
156:                 view.getChildren().add(control);
157:
158:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
159:
160:                 final VDiagnostic diagnostic = control.getDiagnostic();
161:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
162:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
163:                 assertEquals(root, diagnostic.getDiagnostics(root).get(0).getData()
164:                         .get(0));
165:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
166:         }
167:
168:         @Test
169:         public void testValidRootValidChild() {
170:                 final VView view = VViewFactory.eINSTANCE.createView();
171:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
172:                 root.setName(VALID_NAME);
173:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
174:                 childLevel1.setName(VALID_NAME);
175:                 root.getChildren().add(childLevel1);
176:                 view.setRootEClass(root.eClass());
177:
178:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
179:                         .createTreeMasterDetail();
180:
181:                 view.getChildren().add(control);
182:
183:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
184:
185:                 final VDiagnostic diagnostic = control.getDiagnostic();
186:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
187:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
188:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
189:         }
190:
191:         @Test
192:         public void testValidRootInvalidChildren() {
193:                 final VView view = VViewFactory.eINSTANCE.createView();
194:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
195:                 root.setName(VALID_NAME);
196:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
197:                 childLevel1.setName(VALID_NAME);
198:                 root.getChildren().add(childLevel1);
199:                 final ChildLevel1 childLevel12 = TestTMDFactory.eINSTANCE.createChildLevel1();
200:                 root.getChildren().add(childLevel12);
201:                 view.setRootEClass(root.eClass());
202:
203:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
204:                         .createTreeMasterDetail();
205:
206:                 view.getChildren().add(control);
207:
208:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
209:
210:                 final VDiagnostic diagnostic = control.getDiagnostic();
211:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
212:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
213:                 assertEquals(childLevel12, diagnostic.getDiagnostics(root).get(0)
214:                         .getData().get(0));
215:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
216:                 assertEquals(1, diagnostic.getDiagnostics(childLevel12).size());
217:         }
218:
219:         @Test
220:         public void testInvalidChildInvalidSubChild() {
221:                 final VView view = VViewFactory.eINSTANCE.createView();
222:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
223:                 root.setName(VALID_NAME);
224:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
225:                 root.getChildren().add(childLevel1);
226:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
227:                 childLevel1.getChildren().add(childLevel2);
228:
229:                 view.setRootEClass(root.eClass());
230:
231:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
232:                         .createTreeMasterDetail();
233:
234:                 view.getChildren().add(control);
235:
236:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
237:
238:                 final VDiagnostic diagnostic = control.getDiagnostic();
239:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
240:                 assertEquals(2, diagnostic.getDiagnostics(root).size());
241:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
242:                         .getData().get(0));
243:                 assertEquals(childLevel2, diagnostic.getDiagnostics(root).get(1)
244:                         .getData().get(0));
245:                 assertEquals(2, diagnostic.getDiagnostics(childLevel1).size());
246:                 assertEquals(childLevel1, diagnostic.getDiagnostics(childLevel1).get(0)
247:                         .getData().get(0));
248:                 assertEquals(childLevel2, diagnostic.getDiagnostics(childLevel1).get(1)
249:                         .getData().get(0));
250:                 assertEquals(1, diagnostic.getDiagnostics(childLevel2).size());
251:         }
252:
253:         @Test
254:         public void testValidChildInvalidSubChild() {
255:                 final VView view = VViewFactory.eINSTANCE.createView();
256:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
257:                 root.setName(VALID_NAME);
258:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
259:                 childLevel1.setName(VALID_NAME);
260:                 root.getChildren().add(childLevel1);
261:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
262:                 childLevel1.getChildren().add(childLevel2);
263:
264:                 view.setRootEClass(root.eClass());
265:
266:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
267:                         .createTreeMasterDetail();
268:
269:                 view.getChildren().add(control);
270:
271:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
272:
273:                 final VDiagnostic diagnostic = control.getDiagnostic();
274:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
275:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
276:                 assertEquals(childLevel2, diagnostic.getDiagnostics(root).get(0)
277:                         .getData().get(0));
278:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
279:                 assertEquals(childLevel2, diagnostic.getDiagnostics(childLevel1).get(0)
280:                         .getData().get(0));
281:                 assertEquals(1, diagnostic.getDiagnostics(childLevel2).size());
282:         }
283:
284:         @Test
285:         public void testInvalidChildValidSubChild() {
286:                 final VView view = VViewFactory.eINSTANCE.createView();
287:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
288:                 root.setName(VALID_NAME);
289:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
290:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
291:                 childLevel2.setName(VALID_NAME);
292:                 childLevel1.getChildren().add(childLevel2);
293:
294:                 root.getChildren().add(childLevel1);
295:
296:                 view.setRootEClass(root.eClass());
297:
298:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
299:                         .createTreeMasterDetail();
300:
301:                 view.getChildren().add(control);
302:
303:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
304:
305:                 final VDiagnostic diagnostic = control.getDiagnostic();
306:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
307:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
308:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
309:                         .getData().get(0));
310:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
311:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
312:         }
313:
314:         @Test
315:         public void testValidChildValidSubChild() {
316:                 final VView view = VViewFactory.eINSTANCE.createView();
317:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
318:                 root.setName(VALID_NAME);
319:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
320:                 childLevel1.setName(VALID_NAME);
321:                 root.getChildren().add(childLevel1);
322:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
323:                 childLevel2.setName(VALID_NAME);
324:                 childLevel1.getChildren().add(childLevel2);
325:
326:                 view.setRootEClass(root.eClass());
327:
328:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
329:                         .createTreeMasterDetail();
330:
331:                 view.getChildren().add(control);
332:
333:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
334:
335:                 final VDiagnostic diagnostic = control.getDiagnostic();
336:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
337:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
338:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
339:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
340:         }
341:
342:         @Test
343:         public void testInvalidRootToValid() {
344:                 final VView view = VViewFactory.eINSTANCE.createView();
345:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
346:                 view.setRootEClass(root.eClass());
347:
348:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
349:                         .createTreeMasterDetail();
350:
351:                 view.getChildren().add(control);
352:
353:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
354:
355:                 root.setName(VALID_NAME);
356:
357:                 final VDiagnostic diagnostic = control.getDiagnostic();
358:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
359:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
360:         }
361:
362:         @Test
363:         public void testValidRootToInvalid() {
364:                 final VView view = VViewFactory.eINSTANCE.createView();
365:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
366:                 root.setName(VALID_NAME);
367:                 view.setRootEClass(root.eClass());
368:
369:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
370:                         .createTreeMasterDetail();
371:
372:                 view.getChildren().add(control);
373:
374:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
375:
376:                 root.setName(null);
377:
378:                 final VDiagnostic diagnostic = control.getDiagnostic();
379:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
380:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
381:         }
382:
383:         @Test
384:         public void testInvalidChildToValid() {
385:                 final VView view = VViewFactory.eINSTANCE.createView();
386:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
387:                 root.setName(VALID_NAME);
388:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
389:                 root.getChildren().add(childLevel1);
390:
391:                 view.setRootEClass(root.eClass());
392:
393:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
394:                         .createTreeMasterDetail();
395:
396:                 view.getChildren().add(control);
397:
398:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
399:
400:                 childLevel1.setName(VALID_NAME);
401:
402:                 final VDiagnostic diagnostic = control.getDiagnostic();
403:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
404:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
405:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
406:         }
407:
408:         @Test
409:         public void testValidChildToInvalid() {
410:                 final VView view = VViewFactory.eINSTANCE.createView();
411:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
412:                 root.setName(VALID_NAME);
413:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
414:                 childLevel1.setName(VALID_NAME);
415:                 root.getChildren().add(childLevel1);
416:                 view.setRootEClass(root.eClass());
417:
418:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
419:                         .createTreeMasterDetail();
420:
421:                 view.getChildren().add(control);
422:
423:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
424:
425:                 childLevel1.setName(null);
426:
427:                 final VDiagnostic diagnostic = control.getDiagnostic();
428:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
429:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
430:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
431:                         .getData().get(0));
432:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
433:         }
434:
435:         @Test
436:         public void testValidRootAddValidChild() {
437:                 final VView view = VViewFactory.eINSTANCE.createView();
438:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
439:                 root.setName(VALID_NAME);
440:                 view.setRootEClass(root.eClass());
441:
442:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
443:                         .createTreeMasterDetail();
444:
445:                 view.getChildren().add(control);
446:
447:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
448:
449:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
450:                 childLevel1.setName(VALID_NAME);
451:                 root.getChildren().add(childLevel1);
452:
453:                 final VDiagnostic diagnostic = control.getDiagnostic();
454:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
455:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
456:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
457:         }
458:
459:         @Test
460:         public void testValidRootAddInvalidChild() {
461:                 final VView view = VViewFactory.eINSTANCE.createView();
462:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
463:                 root.setName(VALID_NAME);
464:                 view.setRootEClass(root.eClass());
465:
466:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
467:                         .createTreeMasterDetail();
468:
469:                 view.getChildren().add(control);
470:
471:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
472:
473:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
474:                 root.getChildren().add(childLevel1);
475:
476:                 final VDiagnostic diagnostic = control.getDiagnostic();
477:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
478:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
479:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
480:                         .getData().get(0));
481:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
482:         }
483:
484:         @Test
485:         public void testInvalidRootAddValidChild() {
486:                 final VView view = VViewFactory.eINSTANCE.createView();
487:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
488:                 view.setRootEClass(root.eClass());
489:
490:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
491:                         .createTreeMasterDetail();
492:
493:                 view.getChildren().add(control);
494:
495:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
496:
497:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
498:                 childLevel1.setName(VALID_NAME);
499:                 root.getChildren().add(childLevel1);
500:
501:                 final VDiagnostic diagnostic = control.getDiagnostic();
502:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
503:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
504:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
505:         }
506:
507:         @Test
508:         public void testInvalidRootAddInvalidChild() {
509:                 final VView view = VViewFactory.eINSTANCE.createView();
510:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
511:                 view.setRootEClass(root.eClass());
512:
513:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
514:                         .createTreeMasterDetail();
515:
516:                 view.getChildren().add(control);
517:
518:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
519:
520:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
521:                 root.getChildren().add(childLevel1);
522:
523:                 final VDiagnostic diagnostic = control.getDiagnostic();
524:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
525:                 assertEquals(2, diagnostic.getDiagnostics(root).size());
526:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
527:                         .getData().get(0));
528:                 assertEquals(root, diagnostic.getDiagnostics(root).get(1).getData()
529:                         .get(0));
530:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
531:         }
532:
533:         @Test
534:         public void testValidRootAddValidSubTree() {
535:                 final VView view = VViewFactory.eINSTANCE.createView();
536:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
537:                 root.setName(VALID_NAME);
538:                 view.setRootEClass(root.eClass());
539:
540:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
541:                         .createTreeMasterDetail();
542:
543:                 view.getChildren().add(control);
544:
545:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
546:
547:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
548:                 childLevel1.setName(VALID_NAME);
549:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
550:                 childLevel2.setName(VALID_NAME);
551:                 childLevel1.getChildren().add(childLevel2);
552:
553:                 root.getChildren().add(childLevel1);
554:
555:                 final VDiagnostic diagnostic = control.getDiagnostic();
556:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
557:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
558:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
559:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
560:         }
561:
562:         @Test
563:         public void testValidRootAddInvalidSubTree() {
564:                 final VView view = VViewFactory.eINSTANCE.createView();
565:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
566:                 root.setName(VALID_NAME);
567:                 view.setRootEClass(root.eClass());
568:
569:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
570:                         .createTreeMasterDetail();
571:
572:                 view.getChildren().add(control);
573:
574:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
575:
576:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
577:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
578:                 childLevel2.setName(VALID_NAME);
579:                 childLevel1.getChildren().add(childLevel2);
580:
581:                 root.getChildren().add(childLevel1);
582:
583:                 final VDiagnostic diagnostic = control.getDiagnostic();
584:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
585:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
586:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
587:                         .getData().get(0));
588:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
589:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
590:         }
591:
592:         @Test
593:         public void testValidRootAddInvalidSubTree2() {
594:                 final VView view = VViewFactory.eINSTANCE.createView();
595:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
596:                 root.setName(VALID_NAME);
597:                 view.setRootEClass(root.eClass());
598:
599:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
600:                         .createTreeMasterDetail();
601:
602:                 view.getChildren().add(control);
603:
604:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
605:
606:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
607:                 childLevel1.setName(VALID_NAME);
608:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
609:                 childLevel1.getChildren().add(childLevel2);
610:
611:                 root.getChildren().add(childLevel1);
612:
613:                 final VDiagnostic diagnostic = control.getDiagnostic();
614:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
615:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
616:                 assertEquals(childLevel2, diagnostic.getDiagnostics(root).get(0)
617:                         .getData().get(0));
618:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
619:                 assertEquals(childLevel2, diagnostic.getDiagnostics(childLevel1).get(0)
620:                         .getData().get(0));
621:                 assertEquals(1, diagnostic.getDiagnostics(childLevel2).size());
622:         }
623:
624:         @Test
625:         public void testInvalidRootAddValidSubTree() {
626:                 final VView view = VViewFactory.eINSTANCE.createView();
627:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
628:                 view.setRootEClass(root.eClass());
629:
630:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
631:                         .createTreeMasterDetail();
632:
633:                 view.getChildren().add(control);
634:
635:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
636:
637:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
638:                 childLevel1.setName(VALID_NAME);
639:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
640:                 childLevel2.setName(VALID_NAME);
641:                 childLevel1.getChildren().add(childLevel2);
642:
643:                 root.getChildren().add(childLevel1);
644:
645:                 final VDiagnostic diagnostic = control.getDiagnostic();
646:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
647:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
648:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
649:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
650:         }
651:
652:         @Test
653:         public void testInvalidRootAddInvalidSubTree1() {
654:                 final VView view = VViewFactory.eINSTANCE.createView();
655:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
656:                 view.setRootEClass(root.eClass());
657:
658:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
659:                         .createTreeMasterDetail();
660:
661:                 view.getChildren().add(control);
662:
663:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
664:
665:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
666:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
667:                 childLevel2.setName(VALID_NAME);
668:                 childLevel1.getChildren().add(childLevel2);
669:
670:                 root.getChildren().add(childLevel1);
671:
672:                 final VDiagnostic diagnostic = control.getDiagnostic();
673:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
674:                 assertEquals(2, diagnostic.getDiagnostics(root).size());
675:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
676:                         .getData().get(0));
677:                 assertEquals(root, diagnostic.getDiagnostics(root).get(1).getData()
678:                         .get(0));
679:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
680:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
681:         }
682:
683:         @Test
684:         public void testInvalidRootAddInvalidSubTree2() {
685:                 final VView view = VViewFactory.eINSTANCE.createView();
686:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
687:                 view.setRootEClass(root.eClass());
688:
689:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
690:                         .createTreeMasterDetail();
691:
692:                 view.getChildren().add(control);
693:
694:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
695:
696:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
697:                 childLevel1.setName(VALID_NAME);
698:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
699:                 childLevel1.getChildren().add(childLevel2);
700:
701:                 root.getChildren().add(childLevel1);
702:
703:                 final VDiagnostic diagnostic = control.getDiagnostic();
704:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
705:                 assertEquals(2, diagnostic.getDiagnostics(root).size());
706:                 assertEquals(childLevel2, diagnostic.getDiagnostics(root).get(0)
707:                         .getData().get(0));
708:                 assertEquals(root, diagnostic.getDiagnostics(root).get(1).getData()
709:                         .get(0));
710:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
711:                 assertEquals(childLevel2, diagnostic.getDiagnostics(childLevel1).get(0)
712:                         .getData().get(0));
713:                 assertEquals(1, diagnostic.getDiagnostics(childLevel2).size());
714:         }
715:
716:         @Test
717:         public void testValidRootWithChildAddInvalidSibling() {
718:                 final VView view = VViewFactory.eINSTANCE.createView();
719:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
720:                 root.setName(VALID_NAME);
721:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
722:                 childLevel1.setName(VALID_NAME);
723:                 root.getChildren().add(childLevel1);
724:
725:                 view.setRootEClass(root.eClass());
726:
727:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
728:                         .createTreeMasterDetail();
729:
730:                 view.getChildren().add(control);
731:
732:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
733:
734:                 final ChildLevel1 childLevel12 = TestTMDFactory.eINSTANCE.createChildLevel1();
735:                 root.getChildren().add(childLevel12);
736:
737:                 final VDiagnostic diagnostic = control.getDiagnostic();
738:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
739:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
740:                 assertEquals(childLevel12, diagnostic.getDiagnostics(root).get(0)
741:                         .getData().get(0));
742:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
743:                 assertEquals(1, diagnostic.getDiagnostics(childLevel12).size());
744:         }
745:
746:         @Test
747:         public void testValidChildAddValidSubChild() {
748:                 final VView view = VViewFactory.eINSTANCE.createView();
749:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
750:                 root.setName(VALID_NAME);
751:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
752:                 childLevel1.setName(VALID_NAME);
753:                 root.getChildren().add(childLevel1);
754:
755:                 view.setRootEClass(root.eClass());
756:
757:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
758:                         .createTreeMasterDetail();
759:
760:                 view.getChildren().add(control);
761:
762:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
763:
764:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
765:                 childLevel2.setName(VALID_NAME);
766:                 childLevel1.getChildren().add(childLevel2);
767:
768:                 final VDiagnostic diagnostic = control.getDiagnostic();
769:                 assertEquals(Diagnostic.OK, diagnostic.getHighestSeverity(), 0);
770:                 assertEquals(0, diagnostic.getDiagnostics(root).size());
771:                 assertEquals(0, diagnostic.getDiagnostics(childLevel1).size());
772:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
773:         }
774:
775:         @Test
776:         public void testValidChildAddInvalidSubChild() {
777:                 final VView view = VViewFactory.eINSTANCE.createView();
778:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
779:                 root.setName(VALID_NAME);
780:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
781:                 childLevel1.setName(VALID_NAME);
782:                 root.getChildren().add(childLevel1);
783:                 view.setRootEClass(root.eClass());
784:
785:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
786:                         .createTreeMasterDetail();
787:
788:                 view.getChildren().add(control);
789:
790:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
791:
792:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
793:                 childLevel1.getChildren().add(childLevel2);
794:
795:                 final VDiagnostic diagnostic = control.getDiagnostic();
796:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
797:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
798:                 assertEquals(childLevel2, diagnostic.getDiagnostics(root).get(0)
799:                         .getData().get(0));
800:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
801:                 assertEquals(childLevel2, diagnostic.getDiagnostics(childLevel1).get(0)
802:                         .getData().get(0));
803:                 assertEquals(1, diagnostic.getDiagnostics(childLevel2).size());
804:         }
805:
806:         @Test
807:         public void testInvalidChildAddValidSubChild() {
808:                 final VView view = VViewFactory.eINSTANCE.createView();
809:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
810:                 root.setName(VALID_NAME);
811:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
812:                 root.getChildren().add(childLevel1);
813:
814:                 view.setRootEClass(root.eClass());
815:
816:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
817:                         .createTreeMasterDetail();
818:
819:                 view.getChildren().add(control);
820:
821:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
822:
823:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
824:                 childLevel2.setName(VALID_NAME);
825:                 root.getChildren().add(childLevel1);
826:
827:                 final VDiagnostic diagnostic = control.getDiagnostic();
828:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
829:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
830:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
831:                         .getData().get(0));
832:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
833:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
834:         }
835:
836:         @Test
837:         public void testInvalidChildAddInvalidSubChild() {
838:                 final VView view = VViewFactory.eINSTANCE.createView();
839:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
840:                 root.setName(VALID_NAME);
841:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
842:                 root.getChildren().add(childLevel1);
843:
844:                 view.setRootEClass(root.eClass());
845:
846:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
847:                         .createTreeMasterDetail();
848:
849:                 view.getChildren().add(control);
850:
851:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
852:
853:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
854:                 childLevel1.getChildren().add(childLevel2);
855:
856:                 final VDiagnostic diagnostic = control.getDiagnostic();
857:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
858:                 assertEquals(2, diagnostic.getDiagnostics(root).size());
859:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
860:                         .getData().get(0));
861:                 assertEquals(childLevel2, diagnostic.getDiagnostics(root).get(1)
862:                         .getData().get(0));
863:                 assertEquals(2, diagnostic.getDiagnostics(childLevel1).size());
864:                 assertEquals(childLevel1, diagnostic.getDiagnostics(childLevel1).get(0)
865:                         .getData().get(0));
866:                 assertEquals(childLevel2, diagnostic.getDiagnostics(childLevel1).get(1)
867:                         .getData().get(0));
868:                 assertEquals(1, diagnostic.getDiagnostics(childLevel2).size());
869:         }
870:
871:         @Test
872:         public void testValidChildWithSubChildAddInvalidSibling() {
873:                 final VView view = VViewFactory.eINSTANCE.createView();
874:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
875:                 root.setName(VALID_NAME);
876:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
877:                 childLevel1.setName(VALID_NAME);
878:                 final ChildLevel2 childLevel2 = TestTMDFactory.eINSTANCE.createChildLevel2();
879:                 childLevel2.setName(VALID_NAME);
880:                 childLevel1.getChildren().add(childLevel2);
881:
882:                 root.getChildren().add(childLevel1);
883:                 view.setRootEClass(root.eClass());
884:
885:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
886:                         .createTreeMasterDetail();
887:
888:                 view.getChildren().add(control);
889:
890:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
891:
892:                 final ChildLevel2 childLevel22 = TestTMDFactory.eINSTANCE.createChildLevel2();
893:                 childLevel1.getChildren().add(childLevel22);
894:
895:                 final VDiagnostic diagnostic = control.getDiagnostic();
896:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
897:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
898:                 assertEquals(childLevel22, diagnostic.getDiagnostics(root).get(0)
899:                         .getData().get(0));
900:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
901:                 assertEquals(childLevel22, diagnostic.getDiagnostics(childLevel1).get(0)
902:                         .getData().get(0));
903:                 assertEquals(0, diagnostic.getDiagnostics(childLevel2).size());
904:                 assertEquals(1, diagnostic.getDiagnostics(childLevel22).size());
905:         }
906:
907:         @Test
908:         public void testValidRootAddValidChildToInvalid() {
909:                 final VView view = VViewFactory.eINSTANCE.createView();
910:                 final Root root = TestTMDFactory.eINSTANCE.createRoot();
911:                 root.setName(VALID_NAME);
912:                 view.setRootEClass(root.eClass());
913:
914:                 final VTreeMasterDetail control = VTreeMasterDetailFactory.eINSTANCE
915:                         .createTreeMasterDetail();
916:
917:                 view.getChildren().add(control);
918:
919:                 ViewModelContextFactory.INSTANCE.createViewModelContext(view, root);
920:
921:                 final ChildLevel1 childLevel1 = TestTMDFactory.eINSTANCE.createChildLevel1();
922:                 childLevel1.setName(VALID_NAME);
923:                 root.getChildren().add(childLevel1);
924:
925:                 childLevel1.setName(null);
926:
927:                 final VDiagnostic diagnostic = control.getDiagnostic();
928:                 assertEquals(Diagnostic.ERROR, diagnostic.getHighestSeverity(), 0);
929:                 assertEquals(1, diagnostic.getDiagnostics(root).size());
930:                 assertEquals(childLevel1, diagnostic.getDiagnostics(root).get(0)
931:                         .getData().get(0));
932:                 assertEquals(1, diagnostic.getDiagnostics(childLevel1).size());
933:         }
934: }