source: trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsAndEndsWithEventTest.java @ 1151

Last change on this file since 1151 was 1151, checked in by adeicke, 11 years ago

Added tests for usage pattern detection-

  • Property svn:mime-type set to text/plain
File size: 15.3 KB
Line 
1//   Copyright 2012 Georg-August-Universität Göttingen, Germany
2//
3//   Licensed under the Apache License, Version 2.0 (the "License");
4//   you may not use this file except in compliance with the License.
5//   You may obtain a copy of the License at
6//
7//       http://www.apache.org/licenses/LICENSE-2.0
8//
9//   Unless required by applicable law or agreed to in writing, software
10//   distributed under the License is distributed on an "AS IS" BASIS,
11//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//   See the License for the specific language governing permissions and
13//   limitations under the License.
14
15package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains;
16
17import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.MOUSE_CLICK;
18import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
19import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeNodeTypeFilter.ITERATION;
20import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeNodeTypeFilter.SELECTION;
21import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeNodeTypeFilter.SEQUENCE;
22import static org.fest.assertions.api.Assertions.assertThat;
23
24import org.junit.Test;
25
26import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
27import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern;
28import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternBuilder;
29import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
30
31/**
32 * <p>
33 * TODO comment
34 * </p>
35 *
36 * @author Alexander Deicke
37 */
38public class ContainsAndEndsWithEventTest {
39
40    @Test
41    public void sequence_ends_with_positive_1() {
42        // Given
43        String spec = "Sequence {" +
44                      "  TextInput () {}" +
45                      "}";
46        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
47        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
48        // When
49        boolean patternContained = pattern.containedIn(taskTree);
50        // Then
51        assertThat(patternContained).isTrue();
52    }
53   
54    @Test
55    public void sequence_ends_with_positive_2() {
56        // Given
57        String spec = "Selection {" +
58                      "  EventTask target1 {}" +
59                      "  Sequence {" +
60                      "    MouseClick target2 {}" +
61                      "    TextInput target3 {}" +
62                      "  }" +
63                      "}";
64        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
65        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
66        // When
67        boolean patternContained = pattern.containedIn(taskTree);
68        // Then
69        assertThat(patternContained).isTrue();
70    }
71   
72    @Test
73    public void sequence_ends_with_positive_3() {
74        // Given
75        String spec =  "Sequence {" +
76                       "  Optional {" +
77                       "    Sequence {" +
78                       "      EventTask target4 {}" +
79                       "      EventTask target3 {}" +
80                       "    }" +
81                       "  }" +
82                       "  EventTask target1 {}" +
83                       "  MouseClick target2 {}" +
84                       "  EventTask target3 {}" +
85                       "  EventTask target4 {}" +
86                       "  Selection {" +
87                       "    EventTask target5 {}" +
88                       "    Sequence {" +
89                       "      EventTask target4 {}" +
90                       "      EventTask target2 {}" +
91                       "    }" +
92                       "  }" +
93                       "  EventTask target6 {}" +
94                       "  TextInput target7 {}" +
95                       "}";
96        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
97        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
98        // When
99        boolean patternContained = pattern.containedIn(taskTree);
100        // Then
101        assertThat(patternContained).isTrue();
102    }
103   
104    @Test
105    public void sequence_ends_with_negative_1() {
106        // Given
107        String spec = "Sequence {" +
108                      "  MouseClick () {}" +
109                      "}";
110        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
111        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
112        // When
113        boolean patternContained = pattern.containedIn(taskTree);
114        // Then
115        assertThat(patternContained).isFalse();
116    }
117   
118    @Test
119    public void sequence_ends_with_negative_2() {
120        // Given
121        String spec = "Selection {" +
122                      "  Sequence {" +
123                      "    EventTask target1 {}" +
124                      "    EventTask target2 {}" +
125                      "  }" +
126                      "  Sequence {" +
127                      "    EventTask target3 {}" +
128                      "    EventTask target4 {}" +
129                      "  }" +
130                      "  Sequence {" +
131                      "    EventTask target5 {}" +
132                      "    EventTask target6 {}" +
133                      "  }" +
134                      "}";
135        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
136        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
137        // When
138        boolean patternContained = pattern.containedIn(taskTree);
139        // Then
140        assertThat(patternContained).isFalse();
141    }
142   
143    @Test
144    public void sequence_ends_with_negative_3() {
145        // Given
146        String spec = "Iteration {" +
147                      "  Selection {" +
148                      "    EventTask target2 {}" +
149                      "    EventTask target3 {}" +
150                      "  }" +
151                      "}";
152        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
153        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
154        // When
155        boolean patternContained = pattern.containedIn(taskTree);
156        // Then
157        assertThat(patternContained).isFalse();
158    }
159   
160    @Test
161    public void iteration_ends_with_positive_1() {
162        // Given
163        String spec = "Iteration {" +
164                      "  TextInput () {}" +
165                      "}";
166        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
167        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
168        // When
169        boolean patternContained = pattern.containedIn(taskTree);
170        // Then
171        assertThat(patternContained).isTrue();
172    }
173   
174    @Test
175    public void iteration_ends_with_positive_2() {
176        // Given
177        String spec = "Iteration {" +
178                      "  Sequence {" +
179                      "    MouseClick target1 {}" +
180                      "    Selection {" +
181                      "      EventTask target2 {}" +
182                      "      TextInput target2 {}" +
183                      "    }" +
184                      "  }" +
185                      "}";
186        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
187        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
188        // When
189        boolean patternContained = pattern.containedIn(taskTree);
190        // Then
191        assertThat(patternContained).isTrue();
192    }
193   
194    @Test
195    public void iteration_ends_with_positive_3() {
196        // Given
197        String spec = "Iteration {" +
198                      "  Selection {" +
199                      "    TextInput target1 {}" +
200                      "    Sequence {" +
201                      "      EventTask target2 {}" +
202                      "      EventTask target3 {}" +
203                      "    }" +
204                      "  }" +
205                      "}";
206        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
207        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
208        // When
209        boolean patternContained = pattern.containedIn(taskTree);
210        // Then
211        assertThat(patternContained).isTrue();
212    }
213   
214    @Test
215    public void iteration_ends_with_negative_1() {
216        // Given
217        String spec = "Iteration {" +
218                      "  MouseClick () {}" +
219                      "}";
220        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
221        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
222        // When
223        boolean patternContained = pattern.containedIn(taskTree);
224        // Then
225        assertThat(patternContained).isFalse();
226    }
227   
228    @Test
229    public void iteration_ends_with_negative_2() {
230        // Given
231        String spec = "Iteration {" +
232                      "  Sequence {" +
233                      "    EventTask target1 {}" +
234                      "    Optional {" +
235                      "      EventTask target2 {}" +
236                      "    }" +
237                      "  }" +
238                      "}";
239        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
240        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
241        // When
242        boolean patternContained = pattern.containedIn(taskTree);
243        // Then
244        assertThat(patternContained).isFalse();
245    }
246   
247    @Test
248    public void iteration_ends_with_negative_3() {
249        // Given
250        String spec = "Iteration {" +
251                      "  Selection {" +
252                      "    EventTask target1 {}" +
253                      "    Sequence {" +
254                      "      TextInput target2 {}" +
255                      "      EventTask target3 {}" +
256                      "    }" +
257                      "  }" +
258                      "}";
259        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
260        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
261        // When
262        boolean patternContained = pattern.containedIn(taskTree);
263        // Then
264        assertThat(patternContained).isFalse();
265    }
266   
267    @Test
268    public void selection_ends_with_positive_1() {
269        // Given
270        String spec = "Selection {" +
271                      "  MouseClick () {}" +
272                      "  TextInput () {}" +
273                      "}";
274        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
275        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
276        // When
277        boolean patternContained = pattern.containedIn(taskTree);
278        // Then
279        assertThat(patternContained).isTrue();
280    }
281   
282    @Test
283    public void selection_ends_with_positive_2() {
284        // Given
285        String spec = "Sequence {" +
286                      "  Optional {" +
287                      "    Sequence {" +
288                      "      EventTask target4 {}" +
289                      "      EventTask target3 {}" +
290                      "    }" +
291                      "  }" +
292                      "  EventTask target1 {}" +
293                      "  EventTask target2 {}" +
294                      "  EventTask target3 {}" +
295                      "  EventTask target4 {}" +
296                      "  Selection {" +
297                      "    EventTask target5 {}" +
298                      "    Sequence {" +
299                      "      TextInput target4 {}" +
300                      "      TextInput target2 {}" +
301                      "    }" +
302                      "  }" +
303                      "  EventTask target6 {}" +
304                      "  EventTask target7 {}" +
305                      "}";
306        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
307        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
308        // When
309        boolean patternContained = pattern.containedIn(taskTree);
310        // Then
311        assertThat(patternContained).isTrue();
312    }
313   
314    @Test
315    public void selection_ends_with_positive_3() {
316        // Given
317        String spec = "Iteration {" +
318                      "  Selection {" +
319                      "    Sequence {" +
320                      "      EventTask target3 {}" +
321                      "      TextInput target4 {}" +
322                      "    }" +
323                      "    Sequence {" +
324                      "      TextInput target5 {}" +
325                      "      EventTask target6 {}" +
326                      "    }" +
327                      "  }" +
328                      "}";
329        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
330        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
331        // When
332        boolean patternContained = pattern.containedIn(taskTree);
333        // Then
334        assertThat(patternContained).isTrue();
335    }
336   
337    @Test
338    public void selection_ends_with_negative_1() {
339        // Given
340        String spec = "Selection {" +
341                      "  DragAndDrop () {}" +
342                      "  MouseClick () {}" +
343                      "}";
344        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
345        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
346        // When
347        boolean patternContained = pattern.containedIn(taskTree);
348        // Then
349        assertThat(patternContained).isFalse();
350    }
351   
352    @Test
353    public void selection_ends_with_negative_2() {
354        // Given
355        String spec = "Iteration {" +
356                      "  Selection {" +
357                      "    Sequence {" +
358                      "      EventTask target3 {}" +
359                      "      EventTask target4 {}" +
360                      "    }" +
361                      "    Sequence {" +
362                      "      EventTask target5 {}" +
363                      "      EventTask target6 {}" +
364                      "    }" +
365                      "  }" +
366                      "}";
367        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
368        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
369        // When
370        boolean patternContained = pattern.containedIn(taskTree);
371        // Then
372        assertThat(patternContained).isFalse();
373    }
374
375}
Note: See TracBrowser for help on using the repository browser.