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