Commit | Line | Data |
---|---|---|
73005152 BH |
1 | /******************************************************************************* |
2 | * Copyright (c) 2011 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 | *******************************************************************************/ | |
12 | package org.eclipse.linuxtools.tmf.ui.tests.views.uml2sd.impl; | |
13 | ||
14 | import java.util.ArrayList; | |
15 | import java.util.List; | |
16 | ||
17 | import junit.framework.TestCase; | |
18 | ||
19 | import org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.Lifeline; | |
20 | import org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.SyncMessage; | |
21 | import org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.widgets.Criteria; | |
22 | import org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.widgets.FilterCriteria; | |
23 | import org.eclipse.linuxtools.tmf.ui.views.uml2sd.impl.TmfSyncMessage; | |
24 | ||
25 | public class TmfUml2SDSyncLoaderFilterTest extends TestCase { | |
26 | ||
27 | // ------------------------------------------------------------------------ | |
28 | // Attributes | |
29 | // ------------------------------------------------------------------------ | |
30 | private Uml2SDTestFacility fFacility; | |
31 | ||
32 | // ------------------------------------------------------------------------ | |
33 | // Constructors | |
34 | // ------------------------------------------------------------------------ | |
35 | public TmfUml2SDSyncLoaderFilterTest() { | |
36 | } | |
37 | ||
38 | // ------------------------------------------------------------------------ | |
39 | // Operations | |
40 | // ------------------------------------------------------------------------ | |
41 | @Override | |
42 | public void setUp() throws Exception { | |
43 | super.setUp(); | |
44 | fFacility = Uml2SDTestFacility.getInstance(); | |
45 | fFacility.init(false); | |
46 | fFacility.selectExperiment(); | |
47 | } | |
48 | ||
49 | ||
50 | @Override | |
51 | public void tearDown() throws Exception { | |
52 | fFacility.disposeExperiment(); | |
53 | fFacility.dispose(); | |
54 | fFacility = null; | |
55 | super.tearDown(); | |
56 | } | |
57 | ||
58 | @SuppressWarnings("nls") | |
59 | public void testFilterHandling() { | |
60 | ||
61 | // Create Filter Criteria | |
62 | List<FilterCriteria> filterToSave = new ArrayList<FilterCriteria>(); | |
63 | Criteria criteria = new Criteria(); | |
64 | criteria.setLifeLineSelected(true); | |
65 | criteria.setExpression(IUml2SDTestConstants.FIRST_PLAYER_NAME); | |
66 | filterToSave.add(new FilterCriteria(criteria, true, false)); | |
67 | ||
68 | criteria = new Criteria(); | |
69 | criteria.setLifeLineSelected(true); | |
70 | criteria.setExpression(IUml2SDTestConstants.MASTER_PLAYER_NAME); | |
71 | filterToSave.add(new FilterCriteria(criteria, false, false)); | |
72 | ||
73 | criteria = new Criteria(); | |
74 | criteria.setSyncMessageSelected(true); | |
75 | criteria.setExpression("BALL_.*"); //$NON-NLS-1$ | |
76 | filterToSave.add(new FilterCriteria(criteria, false, false)); | |
77 | ||
78 | /* | |
79 | * Test Case: 001 | |
80 | * Description: Verify the filter lifelines (1 out of 2 is hidden) | |
81 | * Verified Methods: loader.filter() | |
82 | * Expected result: Only one lifeline is visible with no messages | |
83 | */ | |
84 | fFacility.getLoader().filter(filterToSave); | |
85 | fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY); | |
86 | ||
87 | assertEquals("filter", 1, fFacility.getSdView().getFrame().lifeLinesCount()); | |
88 | assertEquals("filter", IUml2SDTestConstants.MASTER_PLAYER_NAME, fFacility.getSdView().getFrame().getLifeline(0).getName()); | |
89 | assertEquals("filter", 0, fFacility.getSdView().getFrame().syncMessageCount()); | |
90 | ||
91 | ||
92 | /* | |
93 | * Test Case: 002 | |
94 | * Description: Verify the filter lifelines (2 out of 2 are hidden) | |
95 | * Verified Methods: loader.filter(), loader.fillCurrentPage() | |
96 | * Expected result: Neiter liflines nor messages are visible | |
97 | */ | |
98 | filterToSave.get(1).setActive(true); | |
99 | fFacility.getLoader().filter(filterToSave); | |
100 | fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY); | |
101 | ||
102 | assertEquals("filter", 0, fFacility.getSdView().getFrame().lifeLinesCount()); | |
103 | assertEquals("filter", 0, fFacility.getSdView().getFrame().syncMessageCount()); | |
104 | ||
105 | /* | |
106 | * Test Case: 003 | |
107 | * Description: Verify removal of all filters | |
108 | * Verified Methods: loader.filter(), loader.fillCurrentPage() | |
109 | * Expected result: Everything is shown | |
110 | */ | |
111 | filterToSave.get(0).setActive(false); | |
112 | filterToSave.get(1).setActive(false); | |
113 | fFacility.getLoader().filter(filterToSave); | |
114 | fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY); | |
115 | ||
116 | assertEquals("filter", 2, fFacility.getSdView().getFrame().lifeLinesCount()); | |
117 | assertEquals("filter", IUml2SDTestConstants.MAX_MESSEAGES_PER_PAGE, fFacility.getSdView().getFrame().syncMessageCount()); | |
118 | ||
119 | /* | |
120 | * Test Case: 004 | |
121 | * Description: Verify filter of messages | |
122 | * Verified Methods: loader.filter(), loader.fillCurrentPage() | |
123 | * Expected result: Only particular messages are shown | |
124 | */ | |
125 | filterToSave.get(2).setActive(true); | |
126 | fFacility.getLoader().filter(filterToSave); | |
127 | fFacility.delay(IUml2SDTestConstants.GUI_REFESH_DELAY); | |
128 | ||
129 | assertEquals("filter", 2, fFacility.getSdView().getFrame().lifeLinesCount()); | |
130 | assertEquals("filter", 6, fFacility.getSdView().getFrame().syncMessageCount()); | |
131 | ||
132 | String messages[] = { "REGISTER_PLAYER_REQUEST", "REGISTER_PLAYER_REPLY", "GAME_REQUEST", "GAME_REPLY", "START_GAME_REQUEST", "START_GAME_REPLY" }; | |
133 | ||
134 | for (int i = 0; i < messages.length; i++) { | |
135 | SyncMessage msg = fFacility.getSdView().getFrame().getSyncMessage(i); | |
136 | assertTrue("filter", msg instanceof TmfSyncMessage); | |
137 | assertEquals("filter", messages[i], msg.getName()); | |
138 | } | |
139 | ||
140 | /* | |
141 | * Test Case: 005 | |
142 | * Description: Verify filter lifeline (1 out of three lifelines). | |
143 | * Note that filter was set during change of page. | |
144 | * Verified Methods: loader.filter(), loader.fillCurrentPage() | |
145 | * Expected result: Only 2 lifelines and their interactions are shown | |
146 | */ | |
147 | filterToSave.get(0).setActive(true); | |
148 | filterToSave.get(2).setActive(false); | |
149 | fFacility.setPage(IUml2SDTestConstants.PAGE_OF_ALL_LIFELINES); | |
150 | ||
151 | assertEquals("filter", 2, fFacility.getSdView().getFrame().lifeLinesCount()); | |
152 | String lifelines[] = { IUml2SDTestConstants.MASTER_PLAYER_NAME, IUml2SDTestConstants.SECOND_PLAYER_NAME }; | |
153 | ||
154 | for (int i = 0; i < lifelines.length; i++) { | |
155 | Lifeline line = fFacility.getSdView().getFrame().getLifeline(i); | |
156 | assertEquals("filter", lifelines[i], line.getName()); | |
157 | } | |
158 | ||
159 | assertTrue(fFacility.getSdView().getFrame().syncMessageCount() > 0); | |
160 | ||
161 | filterToSave.get(2).setActive(false); | |
162 | } | |
163 | } |