1 /*******************************************************************************
2 * Copyright (c) 2011, 2012 Ericsson
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
10 * Bernd Hufmann - Initial API and implementation
11 *******************************************************************************/
12 package org
.eclipse
.linuxtools
.tmf
.ui
.tests
.views
.uml2sd
.dialogs
;
14 import java
.util
.List
;
15 import java
.util
.regex
.Pattern
;
17 import junit
.framework
.TestCase
;
19 import org
.eclipse
.jface
.dialogs
.DialogSettings
;
20 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.uml2sd
.dialogs
.Criteria
;
21 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.uml2sd
.handlers
.provider
.ISDFilterProvider
;
22 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.uml2sd
.handlers
.provider
.ISDGraphNodeSupporter
;
24 public class CriteriaTest
extends TestCase
{
27 public void setUp() throws Exception
{
31 public void tearDown() throws Exception
{
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());
48 @SuppressWarnings("nls")
49 public void testCriteriaCriteria() {
50 Criteria criteria
= new Criteria();
51 criteria
.setExpression("test");
52 criteria
.setLifeLineSelected(true);
53 criteria
.setSyncMessageSelected(true);
55 Criteria copy
= new Criteria(criteria
);
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());
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.*");
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
);
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);
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
);
115 @SuppressWarnings("nls")
116 public void testCompareTo() {
117 Criteria criteria
= new Criteria();
118 criteria
.setExpression("test");
119 criteria
.setLifeLineSelected(true);
120 criteria
.setSyncMessageSelected(true);
122 Criteria copy
= new Criteria(criteria
);
123 assertTrue("testCompareTo", criteria
.compareTo(copy
));
124 assertTrue("testCompareTo", copy
.compareTo(criteria
));
125 assertTrue("testCompareTo", criteria
.compareTo(criteria
));
127 copy
.setExpression(null);
128 assertFalse("testCompareTo", criteria
.compareTo(copy
));
129 assertFalse("testCompareTo", copy
.compareTo(criteria
));
131 criteria
.setExpression(null);
132 assertTrue("testCompareTo", criteria
.compareTo(copy
));
133 assertTrue("testCompareTo", copy
.compareTo(criteria
));
135 criteria
.setExpression("test");
136 copy
.setExpression("test.*[12345]");
137 assertFalse("testCompareTo", criteria
.compareTo(copy
));
138 assertFalse("testCompareTo", copy
.compareTo(criteria
));
140 copy
.setExpression("test");
141 copy
.setAsyncMessageReturnSelected(true);
142 assertFalse("testCompareTo", criteria
.compareTo(copy
));
143 assertFalse("testCompareTo", copy
.compareTo(criteria
));
146 @SuppressWarnings("nls")
147 public void testSave() {
148 DialogSettings settings
= new DialogSettings("mysettings");
150 Criteria criteria
= new Criteria();
151 criteria
.setExpression("test");
152 criteria
.setLifeLineSelected(true);
153 criteria
.setSyncMessageSelected(true);
155 // Save the criteria to the dialog settings
156 criteria
.save(settings
);
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"));
169 @SuppressWarnings("nls")
170 public void testLoad() {
171 DialogSettings settings
= new DialogSettings("mysettings");
173 Criteria criteria
= new Criteria();
174 criteria
.setExpression("test");
175 criteria
.setLifeLineSelected(true);
176 criteria
.setSyncMessageSelected(true);
178 // Save the criteria to the dialog settings
179 criteria
.save(settings
);
181 // Load the criteria from the dialog settings
182 Criteria copy
= new Criteria();
185 assertTrue("testCompareTo", criteria
.compareTo(copy
));
186 assertTrue("testCompareTo", copy
.compareTo(criteria
));
188 @SuppressWarnings("nls")
189 public void testGetGraphNodeSummary() {
191 // Create a dummy provider
192 ISDFilterProvider provider
= new ISDFilterProvider() {
195 public boolean isNodeSupported(int nodeType
) {
200 public String
getNodeName(int nodeType
, String loaderClassName
) {
201 // not clear about purpose loaderClassName
203 case ISDGraphNodeSupporter
.LIFELINE
:
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
:
221 public boolean filter(List
<?
> filters
) {
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);
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
);
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
);
245 @SuppressWarnings("nls")
246 public void testMatches() {
247 Criteria criteria
= new Criteria();
248 criteria
.setExpression("BALL_.*");
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.
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"));
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"));