Skip to content

Package: SWTStack_PTest

SWTStack_PTest

nameinstructionbranchcomplexitylinemethod
SWTStack_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%
after()
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%
assertContainsCombo(Composite)
M: 3 C: 37
93%
M: 3 C: 5
63%
M: 3 C: 2
40%
M: 2 C: 8
80%
M: 0 C: 1
100%
assertContainsText(Composite)
M: 6 C: 48
89%
M: 4 C: 6
60%
M: 4 C: 2
33%
M: 4 C: 11
73%
M: 0 C: 1
100%
before()
M: 0 C: 51
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
effectivelyReadOnlyDoesNotDisableComposite()
M: 0 C: 15
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
getTop(Composite)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
readOnlyDoesNotDisableComposite()
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
render()
M: 0 C: 24
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testDynamic()
M: 0 C: 24
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
testInitFemale()
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testInitMale()
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testSetTopToNull()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
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.view.stack.ui.swt.test;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertTrue;
18: import static org.junit.Assert.fail;
19:
20: import org.eclipse.emf.ecp.ui.view.ECPRendererException;
21: import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
22: import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
23: import org.eclipse.emf.ecp.view.spi.model.VView;
24: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
25: import org.eclipse.emf.ecp.view.spi.stack.model.VStackFactory;
26: import org.eclipse.emf.ecp.view.spi.stack.model.VStackItem;
27: import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
28: import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
29: import org.eclipse.emf.emfstore.bowling.BowlingFactory;
30: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
31: import org.eclipse.emf.emfstore.bowling.Gender;
32: import org.eclipse.emf.emfstore.bowling.Player;
33: import org.eclipse.swt.custom.CCombo;
34: import org.eclipse.swt.custom.StackLayout;
35: import org.eclipse.swt.widgets.Combo;
36: import org.eclipse.swt.widgets.Composite;
37: import org.eclipse.swt.widgets.Control;
38: import org.eclipse.swt.widgets.Shell;
39: import org.junit.After;
40: import org.junit.Before;
41: import org.junit.Test;
42: import org.junit.runner.RunWith;
43:
44: @RunWith(DatabindingClassRunner.class)
45: public class SWTStack_PTest {
46:
47:         private Player domain;
48:         private VView view;
49:         private VStackLayout stackLayout;
50:         private VStackItem femaleItem;
51:         private VStackItem maleItem;
52:         private Shell shell;
53:
54:         @Before
55:         public void before() {
56:                 domain = BowlingFactory.eINSTANCE.createPlayer();
57:
58:                 view = VViewFactory.eINSTANCE.createView();
59:                 view.setRootEClass(BowlingPackage.eINSTANCE.getPlayer());
60:
61:                 stackLayout = VStackFactory.eINSTANCE.createStackLayout();
62:                 view.getChildren().add(stackLayout);
63:
64:                 femaleItem = TestUtil.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_Name());
65:                 stackLayout.getStackItems().add(femaleItem);
66:
67:                 maleItem = TestUtil.createItem(Gender.MALE, BowlingPackage.eINSTANCE.getPlayer_Gender());
68:                 stackLayout.getStackItems().add(maleItem);
69:         }
70:
71:         @After
72:         public void after() {
73:                 shell.dispose();
74:         }
75:
76:         private Composite render() throws ECPRendererException {
77:                 shell = new Shell();
78:                 final ECPSWTView render = ECPSWTViewRenderer.INSTANCE.render(shell, domain, view);
79:                 final Composite swtControl = (Composite) render.getSWTControl();
80:                 return (Composite) swtControl.getChildren()[0];
81:         }
82:
83:         private Composite getTop(Composite stack) {
84:                 final StackLayout layout = (StackLayout) stack.getLayout();
85:                 return (Composite) layout.topControl;
86:         }
87:
88:         private void assertContainsText(Composite composite) {
89:                 composite = (Composite) composite.getChildren()[0];
90:                 boolean textFound = false;
91:•                for (final Control control : composite.getChildren()) {
92:•                        if (control instanceof org.eclipse.swt.widgets.Text) {
93:                                 textFound = true;
94:                                 break;
95:                         }
96:•                        if (control instanceof Composite) {
97:                                 final Control textComposite = Composite.class.cast(control).getChildren()[0];
98:•                                if (textComposite instanceof org.eclipse.swt.widgets.Text) {
99:                                         textFound = true;
100:                                         break;
101:                                 }
102:                         }
103:                 }
104:•                if (textFound) {
105:                         return;
106:                 }
107:                 fail("Composite does not contain a Text");
108:         }
109:
110:         private void assertContainsCombo(Composite composite) {
111:                 composite = (Composite) composite.getChildren()[0];
112:                 boolean comboFound = false;
113:•                for (final Control control : composite.getChildren()) {
114:•                        if (control instanceof Combo || control instanceof CCombo) {
115:                                 comboFound = true;
116:                                 break;
117:                         }
118:                 }
119:•                if (comboFound) {
120:                         return;
121:                 }
122:                 fail("Composite does not contain a Combo");
123:         }
124:
125:         @Test
126:         public void testInitMale() throws ECPRendererException {
127:                 stackLayout.setTopElement(maleItem);
128:                 final Composite render = render();
129:                 assertContainsCombo(getTop(render));
130:         }
131:
132:         @Test
133:         public void testInitFemale() throws ECPRendererException {
134:                 stackLayout.setTopElement(femaleItem);
135:                 final Composite render = render();
136:                 assertContainsText(getTop(render));
137:         }
138:
139:         @Test
140:         public void testDynamic() throws ECPRendererException {
141:                 final Composite render = render();
142:                 stackLayout.setTopElement(maleItem);
143:                 assertContainsCombo(getTop(render));
144:                 stackLayout.setTopElement(femaleItem);
145:                 assertContainsText(getTop(render));
146:         }
147:
148:         @Test
149:         public void testSetTopToNull() throws ECPRendererException {
150:                 stackLayout.getStackItems().remove(maleItem);
151:                 stackLayout.setTopElement(femaleItem);
152:                 final Composite render = render();
153:                 assertContainsText(getTop(render));
154:                 stackLayout.setTopElement(null);
155:                 final Composite top = getTop(render);
156:                 assertEquals(0, top.getChildren().length);
157:         }
158:
159:         @Test
160:         public void readOnlyDoesNotDisableComposite() throws ECPRendererException {
161:                 stackLayout.setReadonly(true);
162:                 final Composite render = render();
163:                 assertTrue(render.isEnabled());
164:         }
165:
166:         @Test
167:         public void effectivelyReadOnlyDoesNotDisableComposite() throws ECPRendererException {
168:                 VView.class.cast(stackLayout.eContainer()).setReadonly(true);
169:                 final Composite render = render();
170:                 assertTrue(render.isEnabled());
171:         }
172: }