analysis: Move plugins to their own sub-directory
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.ui.tests / src / org / eclipse / tracecompass / tmf / ui / tests / views / uml2sd / loader / TmfUml2SDSyncLoaderFilterTest.java
1 /*******************************************************************************
2 * Copyright (c) 2011-2014 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 *******************************************************************************/
13
14 package org.eclipse.tracecompass.tmf.ui.tests.views.uml2sd.loader;
15
16 import static org.junit.Assert.assertEquals;
17 import static org.junit.Assert.assertTrue;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import org.eclipse.tracecompass.tmf.ui.views.uml2sd.core.Lifeline;
23 import org.eclipse.tracecompass.tmf.ui.views.uml2sd.core.SyncMessage;
24 import org.eclipse.tracecompass.tmf.ui.views.uml2sd.dialogs.Criteria;
25 import org.eclipse.tracecompass.tmf.ui.views.uml2sd.dialogs.FilterCriteria;
26 import org.eclipse.tracecompass.tmf.ui.views.uml2sd.loader.TmfSyncMessage;
27 import org.junit.After;
28 import org.junit.AfterClass;
29 import org.junit.Before;
30 import org.junit.BeforeClass;
31 import org.junit.Test;
32
33 /**
34 * Filter test cases.
35 *
36 * @author Bernd Hufmann
37 */
38 public class TmfUml2SDSyncLoaderFilterTest {
39
40 private static Uml2SDTestFacility fFacility;
41 private static List<FilterCriteria> filterToSave;
42
43 /**
44 * Initialization
45 */
46 @BeforeClass
47 public static void setUpClass() {
48 fFacility = Uml2SDTestFacility.getInstance();
49 fFacility.selectExperiment();
50
51 /* Create Filter Criteria */
52 filterToSave = new ArrayList<>();
53 Criteria criteria = new Criteria();
54 criteria.setLifeLineSelected(true);
55 criteria.setExpression(IUml2SDTestConstants.FIRST_PLAYER_NAME);
56 filterToSave.add(new FilterCriteria(criteria, false, false));
57
58 criteria = new Criteria();
59 criteria.setLifeLineSelected(true);
60 criteria.setExpression(IUml2SDTestConstants.MASTER_PLAYER_NAME);
61 filterToSave.add(new FilterCriteria(criteria, false, false));
62
63 criteria = new Criteria();
64 criteria.setSyncMessageSelected(true);
65 criteria.setExpression("BALL_.*");
66 filterToSave.add(new FilterCriteria(criteria, false, false));
67 }
68
69 /**
70 * Cleanup
71 */
72 @AfterClass
73 public static void tearDownClass() {
74 fFacility.disposeExperiment();
75 fFacility = null;
76 }
77
78 /**
79 * Test Case set-up code.
80 */
81 @Before
82 public void beforeTest(){
83 // Make sure we are at the first page
84 fFacility.firstPage();
85 }
86
87 /**
88 * Test case clean-up code.
89 */
90 @After
91 public void afterTest() {
92 filterToSave.get(0).setActive(false);
93 filterToSave.get(1).setActive(false);
94 filterToSave.get(2).setActive(false);
95 fFacility.getLoader().filter(filterToSave);
96 fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
97 }
98
99 /**
100 * Verify the filter lifelines (1 out of 2 is hidden)
101 *
102 * Verified Methods: loader.filter()
103 * Expected result: Only one lifeline is visible with no messages
104 */
105 @Test
106 public void verifyFilter1of2() {
107 // Initialize the filter
108 filterToSave.get(0).setActive(true);
109 // Run the filter
110 fFacility.getLoader().filter(filterToSave);
111 fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
112
113 assertEquals("filter", 1, fFacility.getSdView().getFrame().lifeLinesCount());
114 assertEquals("filter", IUml2SDTestConstants.MASTER_PLAYER_NAME, fFacility.getSdView().getFrame().getLifeline(0).getName());
115 assertEquals("filter", 0, fFacility.getSdView().getFrame().syncMessageCount());
116 }
117
118
119 /**
120 * Verify the filter lifelines (2 out of 2 are hidden)
121 *
122 * Verified Methods: loader.filter(), loader.fillCurrentPage()
123 * Expected result: Neiter liflines nor messages are visible
124 */
125 @Test
126 public void verifyFilter2of2() {
127 // Initialize the filter
128 filterToSave.get(0).setActive(true);
129 filterToSave.get(1).setActive(true);
130 // Run the filter
131 fFacility.getLoader().filter(filterToSave);
132 fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
133
134 assertEquals("filter", 0, fFacility.getSdView().getFrame().lifeLinesCount());
135 assertEquals("filter", 0, fFacility.getSdView().getFrame().syncMessageCount());
136 }
137
138 /**
139 * Verify removal of all filters
140 *
141 * Verified Methods: loader.filter(), loader.fillCurrentPage()
142 * Expected result: Everything is shown
143 */
144 @Test
145 public void verifyRemoval() {
146 // First set 2 filter
147 filterToSave.get(0).setActive(true);
148 filterToSave.get(1).setActive(true);
149 fFacility.getLoader().filter(filterToSave);
150 fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
151
152 // Remove the filter
153 filterToSave.get(0).setActive(false);
154 filterToSave.get(1).setActive(false);
155 fFacility.getLoader().filter(filterToSave);
156 fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
157
158 assertEquals("filter", 2, fFacility.getSdView().getFrame().lifeLinesCount());
159 assertEquals("filter", IUml2SDTestConstants.MAX_MESSEAGES_PER_PAGE,
160 fFacility.getSdView().getFrame().syncMessageCount());
161 }
162
163 /**
164 * Verify filter of messages
165 *
166 * Verified Methods: loader.filter(), loader.fillCurrentPage()
167 * Expected result: Only particular messages are shown
168 */
169 @Test
170 public void verifyMessageFilter() {
171 // Initialize the filter
172 filterToSave.get(2).setActive(true);
173 // Run the filter
174 fFacility.getLoader().filter(filterToSave);
175 fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
176
177 assertEquals("filter", 2, fFacility.getSdView().getFrame().lifeLinesCount());
178 assertEquals("filter", 6, fFacility.getSdView().getFrame().syncMessageCount());
179
180 String messages[] = { "REGISTER_PLAYER_REQUEST", "REGISTER_PLAYER_REPLY",
181 "GAME_REQUEST", "GAME_REPLY", "START_GAME_REQUEST", "START_GAME_REPLY" };
182
183 for (int i = 0; i < messages.length; i++) {
184 SyncMessage msg = fFacility.getSdView().getFrame().getSyncMessage(i);
185 assertTrue("filter", msg instanceof TmfSyncMessage);
186 assertEquals("filter", messages[i], msg.getName());
187 }
188 }
189
190 /**
191 * Verify filter lifeline (1 out of three lifelines). Note that filter was
192 * set during change of page.
193 *
194 * Verified Methods: loader.filter(), loader.fillCurrentPage()
195 * Expected result: Only 2 lifelines and their interactions are shown
196 */
197 @Test
198 public void verifyFilter1of3() {
199 filterToSave.get(0).setActive(true);
200 fFacility.getLoader().filter(filterToSave);
201 fFacility.setPage(IUml2SDTestConstants.PAGE_OF_ALL_LIFELINES);
202
203 assertEquals("filter", 2, fFacility.getSdView().getFrame().lifeLinesCount());
204 String lifelines[] = { IUml2SDTestConstants.MASTER_PLAYER_NAME, IUml2SDTestConstants.SECOND_PLAYER_NAME };
205
206 for (int i = 0; i < lifelines.length; i++) {
207 Lifeline line = fFacility.getSdView().getFrame().getLifeline(i);
208 assertEquals("filter", lifelines[i], line.getName());
209 }
210
211 assertTrue(fFacility.getSdView().getFrame().syncMessageCount() > 0);
212 }
213 }
This page took 0.035443 seconds and 5 git commands to generate.