source: trunk/quest-core-events-test/src/test/java/de/ugoe/cs/quest/eventcore/gui/MouseClickCondenserTest.java @ 721

Last change on this file since 721 was 721, checked in by pharms, 12 years ago
  • moved condensing mouse clicks to a dedicated command
File size: 4.4 KB
Line 
1package de.ugoe.cs.quest.eventcore.gui;
2
3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse;
5import static org.junit.Assert.assertTrue;
6
7import java.util.ArrayList;
8import java.util.List;
9
10import org.junit.Test;
11
12import de.ugoe.cs.quest.eventcore.Event;
13import de.ugoe.cs.quest.eventcore.IEventType;
14import de.ugoe.cs.quest.eventcore.gui.MouseButtonDown;
15import de.ugoe.cs.quest.eventcore.gui.MouseButtonInteraction;
16import de.ugoe.cs.quest.eventcore.gui.MouseButtonUp;
17import de.ugoe.cs.quest.eventcore.gui.MouseClick;
18import de.ugoe.cs.quest.eventcore.guimodel.IGUIElement;
19import de.ugoe.cs.quest.test.DummyGUIElement;
20import de.ugoe.cs.quest.test.DummyInteraction;
21
22/**
23 * @author Patrick Harms
24 */
25public class MouseClickCondenserTest {
26
27    /** */
28    private List<Event> events = new ArrayList<Event>();
29
30    /**
31     *
32     */
33    @Test
34    public void testMouseClickInOneSequenceElement() {
35        MouseButtonInteraction.Button leftBtn = MouseButtonInteraction.Button.LEFT;
36        MouseButtonInteraction.Button middleBtn = MouseButtonInteraction.Button.MIDDLE;
37        MouseButtonInteraction.Button rightBtn = MouseButtonInteraction.Button.RIGHT;
38
39        IGUIElement element1 = new DummyGUIElement("elem1");
40        IGUIElement element2 = new DummyGUIElement("elem2");
41
42        simulateEvent(new MouseButtonDown(leftBtn), element1);
43        simulateEvent(new MouseButtonUp(leftBtn), element1);
44        simulateEvent(new MouseClick(leftBtn), element1);
45        assertCondensedMouseClicks("elem1");
46
47        simulateEvent(new DummyInteraction("bla", 1), element1);
48        simulateEvent(new DummyInteraction("bli", 1), element1);
49        simulateEvent(new MouseButtonDown(middleBtn), element1);
50        simulateEvent(new MouseButtonUp(middleBtn), element1);
51        simulateEvent(new MouseClick(middleBtn), element1);
52        simulateEvent(new DummyInteraction("blo", 1), element1);
53        simulateEvent(new DummyInteraction("blu", 1), element1);
54        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "");
55
56        simulateEvent(new DummyInteraction("bla", 1), element2);
57        simulateEvent(new DummyInteraction("bli", 1), element2);
58        simulateEvent(new MouseButtonDown(rightBtn), element2);
59        simulateEvent(new MouseButtonUp(rightBtn), element2);
60        simulateEvent(new MouseClick(rightBtn), element2);
61        simulateEvent(new DummyInteraction("blo", 1), element2);
62        simulateEvent(new DummyInteraction("blu", 1), element2);
63        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "", "", "", "elem2", "", "");
64
65        simulateEvent(new MouseButtonDown(leftBtn), element1);
66        simulateEvent(new MouseButtonUp(leftBtn), element1);
67        simulateEvent(new MouseClick(leftBtn), element2);
68        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "", "", "", "elem2", "", "",
69                                   "", "", "elem2");
70
71        simulateEvent(new MouseButtonDown(middleBtn), element1);
72        simulateEvent(new MouseButtonUp(middleBtn), element1);
73        simulateEvent(new MouseClick(rightBtn), element1);
74        simulateEvent(new DummyInteraction("bla", 1), element2);
75        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "", "", "", "elem2", "", "",
76                                   "", "", "elem2", "", "", "elem1", "");
77    }
78
79    /**
80     *
81     */
82    private void simulateEvent(IEventType eventType, IGUIElement guiElement) {
83        events.add(new Event(eventType, guiElement));
84    }
85
86    /**
87    *
88    */
89   private void assertCondensedMouseClicks(String... clickedTargets) {
90       MouseClickCondenser condenser = new MouseClickCondenser();
91       List<Event> result = condenser.condenseMouseClicks(events);
92       
93       assertEquals(clickedTargets.length, result.size());
94       
95       for (int i = 0; i < clickedTargets.length; i++) {
96           String clickedTarget = clickedTargets[i];
97           
98           if ((clickedTarget != null) && (!"".equals(clickedTarget))) {
99               assertTrue(result.get(i).getType() instanceof MouseClick);
100               assertTrue(result.get(i).getTarget() instanceof DummyGUIElement);
101               assertEquals
102                 (clickedTarget, ((DummyGUIElement) result.get(i).getTarget()).getStringIdentifier());
103           }
104           else {
105               assertFalse(result.get(i).getType() instanceof MouseClick);
106           }
107       }
108   }
109}
Note: See TracBrowser for help on using the repository browser.