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