Improve test cases, speed and accuracy.
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / views / uml2sd / handlers / widgets / CriteriaTest.java
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.handlers.widgets;
13
14 import java.util.List;
15 import java.util.regex.Pattern;
16
17 import junit.framework.TestCase;
18
19 import org.eclipse.jface.dialogs.DialogSettings;
20 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.provider.ISDFilterProvider;
21 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.provider.ISDGraphNodeSupporter;
22 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.widgets.Criteria;
23
24 public class CriteriaTest extends TestCase {
25
26 @Override
27 public void setUp() throws Exception {
28 }
29
30 @Override
31 public void tearDown() throws Exception {
32 }
33
34 @SuppressWarnings("nls")
35 public void testCriteria() {
36 Criteria criteria = new Criteria();
37 assertFalse("testCriteria", criteria.isAsyncMessageReturnSelected());
38 assertFalse("testCriteria", criteria.isAsyncMessageSelected());
39 assertFalse("testCriteria", criteria.isCaseSenstiveSelected());
40 assertFalse("testCriteria", criteria.isLifeLineSelected());
41 assertFalse("testCriteria", criteria.isStopSelected());
42 assertFalse("testCriteria", criteria.isSyncMessageReturnSelected());
43 assertFalse("testCriteria", criteria.isSyncMessageSelected());
44 assertNull("testCriteria", criteria.getExpression());
45 assertNull("testCriteria", criteria.getPattern());
46 }
47
48 @SuppressWarnings("nls")
49 public void testCriteriaCriteria() {
50 Criteria criteria = new Criteria();
51 criteria.setExpression("test");
52 criteria.setLifeLineSelected(true);
53 criteria.setSyncMessageSelected(true);
54
55 Criteria copy = new Criteria(criteria);
56
57 assertEquals("testCriteriaCriteria", criteria.isAsyncMessageReturnSelected(), copy.isAsyncMessageReturnSelected());
58 assertEquals("testCriteriaCriteria", criteria.isAsyncMessageSelected(), copy.isAsyncMessageSelected());
59 assertEquals("testCriteriaCriteria", criteria.isCaseSenstiveSelected(), copy.isCaseSenstiveSelected());
60 assertEquals("testCriteriaCriteria", criteria.isLifeLineSelected(), copy.isLifeLineSelected());
61 assertEquals("testCriteriaCriteria", criteria.isStopSelected(), copy.isStopSelected());
62 assertEquals("testCriteriaCriteria", criteria.isSyncMessageReturnSelected(), copy.isSyncMessageReturnSelected());
63 assertEquals("testCriteriaCriteria", criteria.isSyncMessageSelected(), copy.isSyncMessageSelected());
64 assertEquals("testCriteriaCriteria", criteria.getExpression(), copy.getExpression());
65 assertEquals("testCriteriaCriteria", criteria.getPattern().pattern(), copy.getPattern().pattern());
66 }
67
68 @SuppressWarnings("nls")
69 public void testAccessors() {
70 Criteria criteria = new Criteria();
71 criteria.setAsyncMessageReturnSelected(true);
72 criteria.setAsyncMessageSelected(true);
73 criteria.setCaseSenstiveSelected(true);
74 criteria.setLifeLineSelected(true);
75 criteria.setStopSelected(true);
76 criteria.setSyncMessageReturnSelected(true);
77 criteria.setSyncMessageSelected(true);
78 criteria.setExpression("test.*");
79
80 // set true to all flags
81 assertTrue("testAccessors", criteria.isAsyncMessageReturnSelected());
82 assertTrue("testAccessors", criteria.isAsyncMessageSelected());
83 assertTrue("testAccessors", criteria.isCaseSenstiveSelected());
84 assertTrue("testAccessors", criteria.isLifeLineSelected());
85 assertTrue("testAccessors", criteria.isStopSelected());
86 assertTrue("testAccessors", criteria.isSyncMessageReturnSelected());
87 assertTrue("testAccessors", criteria.isSyncMessageSelected());
88 assertEquals("testAccessors", "test.*", criteria.getExpression());
89 assertNotNull("testAccessors", criteria.getPattern());
90 assertEquals("testAccessors", "test.*", criteria.getPattern().pattern());
91 assertEquals("testAccessors", 0, criteria.getPattern().flags() & Pattern.CASE_INSENSITIVE);
92
93 // set false to all flags
94 criteria.setAsyncMessageReturnSelected(false);
95 criteria.setAsyncMessageSelected(false);
96 criteria.setCaseSenstiveSelected(false);
97 criteria.setLifeLineSelected(false);
98 criteria.setStopSelected(false);
99 criteria.setSyncMessageReturnSelected(false);
100 criteria.setSyncMessageSelected(false);
101
102 assertFalse("testAccessors", criteria.isAsyncMessageReturnSelected());
103 assertFalse("testAccessors", criteria.isAsyncMessageSelected());
104 assertFalse("testAccessors", criteria.isCaseSenstiveSelected());
105 assertFalse("testAccessors", criteria.isLifeLineSelected());
106 assertFalse("testAccessors", criteria.isStopSelected());
107 assertFalse("testAccessors", criteria.isSyncMessageReturnSelected());
108 assertFalse("testAccessors", criteria.isSyncMessageSelected());
109 assertEquals("testAccessors", "test.*", criteria.getExpression());
110 assertNotNull("testAccessors", criteria.getPattern());
111 assertEquals("testAccessors", "test.*", criteria.getPattern().pattern());
112 assertEquals("testAccessors", Pattern.CASE_INSENSITIVE, criteria.getPattern().flags() & Pattern.CASE_INSENSITIVE);
113 }
114
115 @SuppressWarnings("nls")
116 public void testCompareTo() {
117 Criteria criteria = new Criteria();
118 criteria.setExpression("test");
119 criteria.setLifeLineSelected(true);
120 criteria.setSyncMessageSelected(true);
121
122 Criteria copy = new Criteria(criteria);
123 assertTrue("testCompareTo", criteria.compareTo(copy));
124 assertTrue("testCompareTo", copy.compareTo(criteria));
125 assertTrue("testCompareTo", criteria.compareTo(criteria));
126
127 copy.setExpression(null);
128 assertFalse("testCompareTo", criteria.compareTo(copy));
129 assertFalse("testCompareTo", copy.compareTo(criteria));
130
131 criteria.setExpression(null);
132 assertTrue("testCompareTo", criteria.compareTo(copy));
133 assertTrue("testCompareTo", copy.compareTo(criteria));
134
135 criteria.setExpression("test");
136 copy.setExpression("test.*[12345]");
137 assertFalse("testCompareTo", criteria.compareTo(copy));
138 assertFalse("testCompareTo", copy.compareTo(criteria));
139
140 copy.setExpression("test");
141 copy.setAsyncMessageReturnSelected(true);
142 assertFalse("testCompareTo", criteria.compareTo(copy));
143 assertFalse("testCompareTo", copy.compareTo(criteria));
144 }
145
146 @SuppressWarnings("nls")
147 public void testSave() {
148 DialogSettings settings = new DialogSettings("mysettings");
149
150 Criteria criteria = new Criteria();
151 criteria.setExpression("test");
152 criteria.setLifeLineSelected(true);
153 criteria.setSyncMessageSelected(true);
154
155 // Save the criteria to the dialog settings
156 criteria.save(settings);
157
158 // Check if all values are saved as expected
159 assertEquals("testSave", "test", settings.get("expression"));
160 assertEquals("testSave", "false", settings.get("isCaseSenstiveSelected"));
161 assertEquals("testSave", "false", settings.get("isAsyncMessageReturnSelected"));
162 assertEquals("testSave", "false", settings.get("isAsyncMessageSelected"));
163 assertEquals("testSave", "true", settings.get("isLifeLineSelected"));
164 assertEquals("testSave", "false", settings.get("isStopSelected"));
165 assertEquals("testSave", "false", settings.get("isSyncMessageReturnSelected"));
166 assertEquals("testSave", "true", settings.get("isSyncMessageSelected"));
167 }
168
169 @SuppressWarnings("nls")
170 public void testLoad() {
171 DialogSettings settings = new DialogSettings("mysettings");
172
173 Criteria criteria = new Criteria();
174 criteria.setExpression("test");
175 criteria.setLifeLineSelected(true);
176 criteria.setSyncMessageSelected(true);
177
178 // Save the criteria to the dialog settings
179 criteria.save(settings);
180
181 // Load the criteria from the dialog settings
182 Criteria copy = new Criteria();
183 copy.load(settings);
184
185 assertTrue("testCompareTo", criteria.compareTo(copy));
186 assertTrue("testCompareTo", copy.compareTo(criteria));
187 }
188 @SuppressWarnings("nls")
189 public void testGetGraphNodeSummary() {
190
191 // Create a dummy provider
192 ISDFilterProvider provider = new ISDFilterProvider() {
193
194 @Override
195 public boolean isNodeSupported(int nodeType) {
196 return true;
197 }
198
199 @Override
200 public String getNodeName(int nodeType, String loaderClassName) {
201 // not clear about purpose loaderClassName
202 switch (nodeType) {
203 case ISDGraphNodeSupporter.LIFELINE:
204 return "MyLifeline";
205 case ISDGraphNodeSupporter.SYNCMESSAGE:
206 return "MySyncMessage";
207 case ISDGraphNodeSupporter.SYNCMESSAGERETURN:
208 return "MySyncMessageReturn";
209 case ISDGraphNodeSupporter.ASYNCMESSAGE:
210 return "MyAsyncMessage";
211 case ISDGraphNodeSupporter.ASYNCMESSAGERETURN:
212 return "MyAsyncMessageReturn";
213 case ISDGraphNodeSupporter.STOP:
214 return "MyStop";
215 default:
216 return "";
217 }
218 }
219
220 @Override
221 public boolean filter(List<?> filters) {
222 return false;
223 }
224 };
225
226 Criteria criteria = new Criteria();
227 criteria.setExpression("BALL_.*");
228 criteria.setAsyncMessageReturnSelected(true);
229 criteria.setAsyncMessageSelected(true);
230 criteria.setLifeLineSelected(true);
231 criteria.setStopSelected(true);
232 criteria.setSyncMessageReturnSelected(true);
233 criteria.setSyncMessageSelected(true);
234
235 // Test summary when provider is available
236 String summary = criteria.getGraphNodeSummary(provider, null);
237 assertEquals("testGetGraphNodeSummary", "[MyLifeline or MySyncMessage or MySyncMessageReturn or MyAsyncMessage or MyAsyncMessageReturn or MyStop]", summary);
238
239 // Test default summary when no provider is provided
240 summary = criteria.getGraphNodeSummary(null, null);
241 assertEquals("testGetGraphNodeSummary", "[Lifeline or Synchronous message or Synchronous message return or Asynchronous message or Asynchronous message return or Stop]", summary);
242
243 }
244
245 @SuppressWarnings("nls")
246 public void testMatches() {
247 Criteria criteria = new Criteria();
248 criteria.setExpression("BALL_.*");
249
250 /*
251 * Note that method matches uses the Pattern class. Test
252 * only case sensitive/case insensitive case. All other regular
253 * expression cases are covered by Pattern class.
254 */
255
256 // case insensitive
257 assertTrue("testMatches", criteria.matches("BALL_REQUEST"));
258 assertTrue("testMatches", criteria.matches("BALL_REPLY"));
259 assertTrue("testMatches", criteria.matches("BALL_R"));
260 assertTrue("testMatches", criteria.matches("ball_request"));
261 assertTrue("testMatches", criteria.matches("ball_request"));
262 assertFalse("testMatches", criteria.matches("NOBALL_REQUEST"));
263 assertFalse("testMatches", criteria.matches("BLABLA"));
264
265 // case sensitive
266 criteria.setCaseSenstiveSelected(true);
267 assertTrue("testMatches", criteria.matches("BALL_REQUEST"));
268 assertTrue("testMatches", criteria.matches("BALL_REPLY"));
269 assertTrue("testMatches", criteria.matches("BALL_R"));
270 assertFalse("testMatches", criteria.matches("ball_request"));
271 assertFalse("testMatches", criteria.matches("ball_request"));
272 assertFalse("testMatches", criteria.matches("NOBALL_REQUEST"));
273 assertFalse("testMatches", criteria.matches("BLABLA"));
274 }
275
276 }
This page took 0.036223 seconds and 5 git commands to generate.