Skip to content

Package: VDiagnosticHelper_Test$1

VDiagnosticHelper_Test$1

nameinstructionbranchcomplexitylinemethod
{...}
M: 0 C: 16
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
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 Mueller - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.validation.test;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertFalse;
18: import static org.junit.Assert.assertTrue;
19:
20: import java.util.LinkedHashMap;
21: import java.util.Map;
22:
23: import org.eclipse.emf.common.util.BasicDiagnostic;
24: import org.eclipse.emf.common.util.Diagnostic;
25: import org.eclipse.emf.ecore.EClass;
26: import org.eclipse.emf.ecore.EObject;
27: import org.eclipse.emf.ecore.EValidator;
28: import org.eclipse.emf.ecore.EcoreFactory;
29: import org.eclipse.emf.ecore.EcorePackage;
30: import org.eclipse.emf.ecore.util.Diagnostician;
31: import org.eclipse.emf.ecp.view.internal.validation.VDiagnosticHelper;
32: import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
33: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
34: import org.eclipse.emf.ecp.view.validation.test.model.Library;
35: import org.eclipse.emf.ecp.view.validation.test.model.TestFactory;
36: import org.eclipse.emf.ecp.view.validation.test.model.Writer;
37: import org.junit.Test;
38:
39: /**
40: * Test cases for the {@link VDiagnosticHelper}.
41: *
42: * @author emueller
43: *
44: */
45: public class VDiagnosticHelper_Test {
46:
47:         public Diagnostic getDiagnosticForEObject(EObject object) {
48:                 final EValidator validator = EValidator.Registry.INSTANCE.getEValidator(object.eClass().getEPackage());
49:                 final BasicDiagnostic diagnostics = Diagnostician.INSTANCE.createDefaultDiagnostic(object);
50:
51:                 @SuppressWarnings("serial")
52:                 final Map<Object, Object> context = new LinkedHashMap<Object, Object>() {
53:                         {
54:                                 put(EValidator.SubstitutionLabelProvider.class, Diagnostician.INSTANCE);
55:                                 put(EValidator.class, validator);
56:                         }
57:                 };
58:
59:                 validator.validate(object, diagnostics, context);
60:
61:                 return diagnostics;
62:         }
63:
64:         @Test
65:         public void testFirstArgIsNull() {
66:                 final Library library = TestFactory.eINSTANCE.createLibrary();
67:                 library.setName("warning");
68:                 final VDiagnostic vDiagnostic = VViewFactory.eINSTANCE.createDiagnostic();
69:                 final Diagnostic diagnostic = getDiagnosticForEObject(library);
70:                 vDiagnostic.getDiagnostics().add(diagnostic);
71:                 assertFalse(VDiagnosticHelper.isEqual(null, vDiagnostic));
72:         }
73:
74:         @Test
75:         public void testSecondArgIsNull() {
76:                 final Library library = TestFactory.eINSTANCE.createLibrary();
77:                 library.setName("warning");
78:                 final VDiagnostic vDiagnostic = VViewFactory.eINSTANCE.createDiagnostic();
79:                 final Diagnostic diagnostic = getDiagnosticForEObject(library);
80:                 vDiagnostic.getDiagnostics().add(diagnostic);
81:                 assertFalse(VDiagnosticHelper.isEqual(vDiagnostic, null));
82:         }
83:
84:         @Test
85:         public void testBothArgsNull() {
86:                 assertTrue(VDiagnosticHelper.isEqual(null, null));
87:         }
88:
89:         @Test
90:         public void testDifferentSeverities() {
91:                 final Library library = TestFactory.eINSTANCE.createLibrary();
92:                 final Writer writer = TestFactory.eINSTANCE.createWriter();
93:                 library.setName("warning");
94:                 library.getWriters().add(writer);
95:                 final Diagnostic libDiagnostic = getDiagnosticForEObject(library);
96:                 final Diagnostic writerDiagnostic = getDiagnosticForEObject(writer);
97:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
98:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
99:                 vDiagnostic1.getDiagnostics().add(libDiagnostic);
100:                 vDiagnostic2.getDiagnostics().add(writerDiagnostic);
101:
102:                 assertEquals(Diagnostic.WARNING, libDiagnostic.getSeverity());
103:                 assertEquals(Diagnostic.ERROR, writerDiagnostic.getSeverity());
104:                 assertFalse(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
105:         }
106:
107:         @Test
108:         public void testDifferentMessages() {
109:                 final Library library = TestFactory.eINSTANCE.createLibrary();
110:                 final Writer writer = TestFactory.eINSTANCE.createWriter();
111:                 final Diagnostic libDiagnostic = getDiagnosticForEObject(library);
112:                 final Diagnostic writerDiagnostic = getDiagnosticForEObject(writer);
113:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
114:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
115:                 vDiagnostic1.getDiagnostics().add(libDiagnostic);
116:                 vDiagnostic2.getDiagnostics().add(libDiagnostic);
117:                 vDiagnostic2.getDiagnostics().add(writerDiagnostic);
118:
119:                 assertFalse(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
120:         }
121:
122:         @Test
123:         public void testEqual() {
124:                 final Library library = TestFactory.eINSTANCE.createLibrary();
125:                 library.setName("warning");
126:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
127:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
128:                 final Diagnostic diagnostic = getDiagnosticForEObject(library);
129:                 vDiagnostic1.getDiagnostics().add(diagnostic);
130:                 vDiagnostic2.getDiagnostics().add(diagnostic);
131:                 assertTrue(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
132:         }
133:
134:         @Test
135:         public void testEqualDifferentDiagnosticsSameResult() {
136:                 final Library library = TestFactory.eINSTANCE.createLibrary();
137:                 library.setName("warning");
138:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
139:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
140:                 final Diagnostic diagnostic = getDiagnosticForEObject(library);
141:                 final Diagnostic diagnostic2 = getDiagnosticForEObject(library);
142:                 vDiagnostic1.getDiagnostics().add(diagnostic);
143:                 vDiagnostic2.getDiagnostics().add(diagnostic2);
144:                 assertTrue(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
145:         }
146:
147:         @Test
148:         public void testEqualDifferentChildren() {
149:                 final Library library = TestFactory.eINSTANCE.createLibrary();
150:                 library.setName("warning");
151:                 final Diagnostic diagnostic = getDiagnosticForEObject(library);
152:                 library.setName("warningWithouFeature");
153:                 final Diagnostic diagnostic2 = getDiagnosticForEObject(library);
154:
155:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
156:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
157:                 vDiagnostic1.getDiagnostics().add(diagnostic);
158:                 vDiagnostic2.getDiagnostics().add(diagnostic2);
159:
160:                 assertFalse(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
161:         }
162:
163:         @Test
164:         public void testEqualDifferentData() {
165:                 final Library library = TestFactory.eINSTANCE.createLibrary();
166:                 final Writer writer = TestFactory.eINSTANCE.createWriter();
167:                 library.setName("lib");
168:                 library.getWriters().add(writer);
169:
170:                 final Diagnostic libDiagnostic = getDiagnosticForEObject(library);
171:                 final Diagnostic writerDiagnostic = getDiagnosticForEObject(writer);
172:                 writer.setFirstName("HB");
173:                 final Diagnostic libDiagnostic2 = getDiagnosticForEObject(library);
174:                 final Diagnostic writerDiagnostic2 = getDiagnosticForEObject(writer);
175:
176:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
177:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
178:                 vDiagnostic1.getDiagnostics().add(libDiagnostic);
179:                 vDiagnostic1.getDiagnostics().add(writerDiagnostic);
180:                 vDiagnostic2.getDiagnostics().add(libDiagnostic2);
181:                 vDiagnostic2.getDiagnostics().add(writerDiagnostic2);
182:
183:                 assertFalse(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
184:         }
185:
186:         @Test
187:         public void testEqualMultipleDiagnostics() {
188:                 final Library library = TestFactory.eINSTANCE.createLibrary();
189:                 final Writer writer = TestFactory.eINSTANCE.createWriter();
190:                 final Diagnostic libDiagnostic = getDiagnosticForEObject(library);
191:                 final Diagnostic writerDiagnostic = getDiagnosticForEObject(writer);
192:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
193:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
194:
195:                 vDiagnostic1.getDiagnostics().add(libDiagnostic);
196:                 vDiagnostic1.getDiagnostics().add(writerDiagnostic);
197:                 vDiagnostic2.getDiagnostics().add(libDiagnostic);
198:                 vDiagnostic2.getDiagnostics().add(writerDiagnostic);
199:
200:                 assertTrue(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
201:         }
202:
203:         @Test
204:         public void testEqualMultipleShortenedDiagnostics() {
205:                 final VDiagnostic vDiagnostic1 = VViewFactory.eINSTANCE.createDiagnostic();
206:                 final VDiagnostic vDiagnostic2 = VViewFactory.eINSTANCE.createDiagnostic();
207:
208:                 final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
209:
210:                 for (int i = 0; i < 3; i++) {
211:                         final BasicDiagnostic bd = new BasicDiagnostic(Diagnostic.OK, "", 0, "OK", new Object[] { eClass,
212:                                 EcorePackage.eINSTANCE.getENamedElement_Name() });
213:
214:                         vDiagnostic1.getDiagnostics().add(bd);
215:                 }
216:
217:                 for (int i = 0; i < 2; i++) {
218:                         final BasicDiagnostic bd = new BasicDiagnostic(Diagnostic.OK, "", 0, "OK", new Object[] { eClass,
219:                                 EcorePackage.eINSTANCE.getENamedElement_Name() });
220:
221:                         vDiagnostic2.getDiagnostics().add(bd);
222:                 }
223:
224:                 assertFalse(VDiagnosticHelper.isEqual(vDiagnostic1, vDiagnostic2));
225:         }
226:
227:         @Test
228:         public void testCleanWithMerge() {
229:                 final VDiagnostic vDiagnostic = VViewFactory.eINSTANCE.createDiagnostic();
230:                 final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
231:                 final BasicDiagnostic bd1 = new BasicDiagnostic(Diagnostic.OK, "", 0, "OK", new Object[] { eClass,
232:                         EcorePackage.eINSTANCE.getENamedElement_Name() });
233:                 final BasicDiagnostic bd2 = new BasicDiagnostic(Diagnostic.WARNING, "", 0, "OK", new Object[] { eClass,
234:                         EcorePackage.eINSTANCE.getEClassifier_InstanceClass() });
235:                 vDiagnostic.getDiagnostics().add(bd1);
236:                 vDiagnostic.getDiagnostics().add(bd2);
237:
238:                 final VDiagnostic clean = VDiagnosticHelper.clean(vDiagnostic);
239:                 assertEquals(1, clean.getDiagnostics().size());
240:                 assertEquals(Diagnostic.WARNING, clean.getHighestSeverity());
241:         }
242:
243:         @Test
244:         public void testCleanWithoutMerge() {
245:                 final VDiagnostic vDiagnostic = VViewFactory.eINSTANCE.createDiagnostic();
246:                 final EClass eClass1 = EcoreFactory.eINSTANCE.createEClass();
247:                 final EClass eClass2 = EcoreFactory.eINSTANCE.createEClass();
248:                 final BasicDiagnostic bd1 = new BasicDiagnostic(Diagnostic.OK, "", 0, "OK", new Object[] { eClass1,
249:                         EcorePackage.eINSTANCE.getENamedElement_Name() });
250:                 final BasicDiagnostic bd2 = new BasicDiagnostic(Diagnostic.WARNING, "", 0, "OK", new Object[] { eClass2,
251:                         EcorePackage.eINSTANCE.getEClassifier_InstanceClass() });
252:                 vDiagnostic.getDiagnostics().add(bd1);
253:                 vDiagnostic.getDiagnostics().add(bd2);
254:
255:                 final VDiagnostic clean = VDiagnosticHelper.clean(vDiagnostic);
256:                 assertEquals(2, clean.getDiagnostics().size());
257:                 assertEquals(Diagnostic.WARNING, clean.getHighestSeverity());
258:
259:         }
260:
261: }