Skip to content

Package: Diagnostician_PTest

Diagnostician_PTest

nameinstructionbranchcomplexitylinemethod
Diagnostician_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%
player()
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%
testClassifierWrapperEClass()
M: 0 C: 88
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 15
100%
M: 0 C: 1
100%
testClassifierWrapperEDataType()
M: 0 C: 89
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 16
100%
M: 0 C: 1
100%
testDiagnostician()
M: 0 C: 109
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
testPackageWrapperEClass()
M: 0 C: 59
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testPackageWrapperEDataType()
M: 0 C: 59
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
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: * Johannes Faltermeier - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.validation.diagnostician.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.LinkedHashSet;
22: import java.util.Map;
23: import java.util.Set;
24:
25: import org.eclipse.emf.common.util.BasicDiagnostic;
26: import org.eclipse.emf.common.util.Diagnostic;
27: import org.eclipse.emf.ecore.EClassifier;
28: import org.eclipse.emf.ecp.diagnostician.ECPDiagnostician;
29: import org.eclipse.emf.ecp.diagnostician.ECPValidator;
30: import org.eclipse.emf.ecp.internal.diagnostician.ClassifierValidatorWrapper;
31: import org.eclipse.emf.ecp.internal.diagnostician.PackageValidatorWrapper;
32: import org.eclipse.emf.emfstore.bowling.BowlingFactory;
33: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
34: import org.eclipse.emf.emfstore.bowling.Gender;
35: import org.eclipse.emf.emfstore.bowling.Player;
36: import org.junit.Test;
37:
38: public class Diagnostician_PTest {
39:
40:         @Test
41:         public void testClassifierWrapperEClass() {
42:                 final Set<ECPValidator> validators = new LinkedHashSet<ECPValidator>();
43:                 validators.add(new PlayerValidatorHeight());
44:                 validators.add(new PlayerValidatorName());
45:                 validators.add(new PlayerValidatorOK());
46:                 final ClassifierValidatorWrapper wrapper = new ClassifierValidatorWrapper(BowlingPackage.eINSTANCE.getPlayer(),
47:                         validators);
48:                 final BasicDiagnostic chain = new BasicDiagnostic();
49:                 assertFalse(wrapper.validate(player(), chain, new LinkedHashMap<Object, Object>()));
50:                 assertEquals(Diagnostic.ERROR, chain.getSeverity());
51:                 assertEquals(2, chain.getChildren().size());
52:                 assertEquals(Diagnostic.WARNING, chain.getChildren().get(0).getSeverity());
53:                 assertEquals("Height", chain.getChildren().get(0).getMessage());
54:                 assertEquals(Diagnostic.ERROR, chain.getChildren().get(1).getSeverity());
55:                 assertEquals("Name", chain.getChildren().get(1).getMessage());
56:         }
57:
58:         @Test
59:         public void testClassifierWrapperEDataType() {
60:                 final Set<ECPValidator> validators = new LinkedHashSet<ECPValidator>();
61:                 validators.add(new GenderValidator1());
62:                 validators.add(new GenderValidator2());
63:                 validators.add(new GenderValidator3());
64:                 final ClassifierValidatorWrapper wrapper = new ClassifierValidatorWrapper(BowlingPackage.eINSTANCE.getGender(),
65:                         validators);
66:                 final BasicDiagnostic chain = new BasicDiagnostic();
67:                 assertFalse(wrapper.validate(BowlingPackage.eINSTANCE.getGender(), Gender.FEMALE, chain,
68:                         new LinkedHashMap<Object, Object>()));
69:                 assertEquals(Diagnostic.CANCEL, chain.getSeverity());
70:                 assertEquals(2, chain.getChildren().size());
71:                 assertEquals(Diagnostic.INFO, chain.getChildren().get(0).getSeverity());
72:                 assertEquals("Gender", chain.getChildren().get(0).getMessage());
73:                 assertEquals(Diagnostic.CANCEL, chain.getChildren().get(1).getSeverity());
74:                 assertEquals("Cancel", chain.getChildren().get(1).getMessage());
75:         }
76:
77:         @Test
78:         public void testPackageWrapperEClass() {
79:                 final PlayerValidatorName validator = new PlayerValidatorName();
80:                 final Map<EClassifier, ECPValidator> classifierToValidatorMap = new LinkedHashMap<EClassifier, ECPValidator>();
81:                 classifierToValidatorMap.put(BowlingPackage.eINSTANCE.getPlayer(), validator);
82:                 final PackageValidatorWrapper packageValidatorWrapper = new PackageValidatorWrapper(classifierToValidatorMap);
83:                 assertEquals(0, validator.getHitCount());
84:                 assertFalse(packageValidatorWrapper.validate(player(), new BasicDiagnostic(),
85:                         new LinkedHashMap<Object, Object>()));
86:                 assertEquals(1, validator.getHitCount());
87:                 assertFalse(packageValidatorWrapper.validate(BowlingPackage.eINSTANCE.getPlayer(), player(),
88:                         new BasicDiagnostic(),
89:                         new LinkedHashMap<Object, Object>()));
90:                 assertEquals(2, validator.getHitCount());
91:         }
92:
93:         @Test
94:         public void testPackageWrapperEDataType() {
95:                 final GenderValidator1 validator = new GenderValidator1();
96:                 final Map<EClassifier, ECPValidator> classifierToValidatorMap = new LinkedHashMap<EClassifier, ECPValidator>();
97:                 classifierToValidatorMap.put(BowlingPackage.eINSTANCE.getGender(), validator);
98:                 final PackageValidatorWrapper packageValidatorWrapper = new PackageValidatorWrapper(classifierToValidatorMap);
99:                 assertEquals(0, validator.getHitCount());
100:                 assertFalse(packageValidatorWrapper.validate(BowlingPackage.eINSTANCE.getGender(), Gender.FEMALE,
101:                         new BasicDiagnostic(), new LinkedHashMap<Object, Object>()));
102:                 assertEquals(1, validator.getHitCount());
103:                 assertFalse(packageValidatorWrapper.validate(BowlingPackage.eINSTANCE.getGender(), Gender.FEMALE,
104:                         new BasicDiagnostic(), new LinkedHashMap<Object, Object>()));
105:                 assertEquals(2, validator.getHitCount());
106:         }
107:
108:         @Test
109:         public void testDiagnostician() {
110:                 final Player player = player();
111:                 assertTrue(ECPDiagnostician.INSTANCE.canValidate(player));
112:                 final Diagnostic diagnostic1 = ECPDiagnostician.INSTANCE.validate(player);
113:                 assertEquals(Diagnostic.ERROR, diagnostic1.getSeverity());
114:                 assertEquals(2, diagnostic1.getChildren().size());
115:                 assertEquals(Diagnostic.WARNING, diagnostic1.getChildren().get(0).getSeverity());
116:                 assertEquals("Height", diagnostic1.getChildren().get(0).getMessage());
117:                 assertEquals(Diagnostic.ERROR, diagnostic1.getChildren().get(1).getSeverity());
118:                 assertEquals("Name", diagnostic1.getChildren().get(1).getMessage());
119:                 final Diagnostic diagnostic2 = ECPDiagnostician.INSTANCE.validate(player, new LinkedHashMap<Object, Object>());
120:                 assertEquals(Diagnostic.ERROR, diagnostic2.getSeverity());
121:                 assertEquals(2, diagnostic2.getChildren().size());
122:                 assertEquals(Diagnostic.WARNING, diagnostic2.getChildren().get(0).getSeverity());
123:                 assertEquals("Height", diagnostic2.getChildren().get(0).getMessage());
124:                 assertEquals(Diagnostic.ERROR, diagnostic2.getChildren().get(1).getSeverity());
125:                 assertEquals("Name", diagnostic2.getChildren().get(1).getMessage());
126:         }
127:
128:         private Player player() {
129:                 return BowlingFactory.eINSTANCE.createPlayer();
130:         }
131:
132: }