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

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