source: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/AbstractDefaultGUIElementTest.java @ 1490

Last change on this file since 1490 was 1490, checked in by pharms, 10 years ago
  • added support and initial implementation of a platform specific distance measure between GUI elements
File size: 4.4 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.eventcore.guimodel;
16
17import static org.junit.Assert.*;
18
19import org.junit.Test;
20
21import de.ugoe.cs.autoquest.eventcore.guimodel.AbstractDefaultGUIElement;
22import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
23import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElementSpec;
24
25/**
26 *
27 */
28public class AbstractDefaultGUIElementTest {
29
30    /**
31     *
32     */
33    @Test
34    public void testRegisteringEqualGuiElements() {
35        IGUIElement guiElement1 = new AbstractDefaultGUIElementTestImpl();
36        IGUIElement guiElement2 = new AbstractDefaultGUIElementTestImpl();
37       
38        assertCompletelyUnequal(guiElement1, guiElement2);
39       
40        guiElement1.addEqualGUIElement(guiElement2);
41        assertCompletelyEqual(guiElement1, guiElement2);
42       
43        IGUIElement guiElement3 = new AbstractDefaultGUIElementTestImpl();
44       
45        assertCompletelyEqual(guiElement1, guiElement2);
46        assertCompletelyUnequal(guiElement1, guiElement3);
47        assertCompletelyUnequal(guiElement2, guiElement3);
48       
49        guiElement1.addEqualGUIElement(guiElement3);
50        assertCompletelyEqual(guiElement1, guiElement2, guiElement3);
51
52        IGUIElement guiElement4 = new AbstractDefaultGUIElementTestImpl();
53       
54        assertCompletelyEqual(guiElement1, guiElement2, guiElement3);
55        assertCompletelyUnequal(guiElement1, guiElement4);
56        assertCompletelyUnequal(guiElement2, guiElement4);
57        assertCompletelyUnequal(guiElement3, guiElement4);
58       
59        guiElement3.addEqualGUIElement(guiElement4);
60        assertCompletelyEqual(guiElement1, guiElement2, guiElement3, guiElement4);
61    }
62   
63    /**
64     *
65     */
66    private void assertCompletelyUnequal(IGUIElement... guiElements) {
67        for (int i = 0; i < guiElements.length; i++) {
68            for (int j = i + 1; j < guiElements.length; j++) {
69                assertFalse(guiElements[i].equals(guiElements[j]));
70                assertFalse(guiElements[j].equals(guiElements[i]));
71            }
72        }
73    }
74
75    /**
76     *
77     */
78    private void assertCompletelyEqual(IGUIElement... guiElements) {
79        for (int i = 0; i < guiElements.length; i++) {
80            for (int j = i; j < guiElements.length; j++) {
81                assertTrue(guiElements[i].equals(guiElements[j]));
82                assertTrue(guiElements[j].equals(guiElements[i]));
83                assertEquals(guiElements[i].hashCode(), guiElements[j].hashCode());
84            }
85        }
86    }
87
88    /**
89     *
90     */
91    public class AbstractDefaultGUIElementTestImpl extends AbstractDefaultGUIElement
92        implements IGUIElement
93    {
94
95        /**
96         *
97         */
98        public AbstractDefaultGUIElementTestImpl() {
99            super(null, null);
100        }
101
102        /**  */
103        private static final long serialVersionUID = 1L;
104
105        /* (non-Javadoc)
106         * @see de.ugoe.cs.autoquest.eventcore.IEventTarget#getPlatform()
107         */
108        @Override
109        public String getPlatform() {
110            return "TEST";
111        }
112
113        /* (non-Javadoc)
114         * @see de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement#updateSpecification(IGUIElementSpec)
115         */
116        @Override
117        public void updateSpecification(IGUIElementSpec furtherSpec) {
118            throw new UnsupportedOperationException();
119        }
120
121        @Override
122        public String getStringIdentifier() {
123            return "DUMMY";
124        }
125
126        /* (non-Javadoc)
127         * @see de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement#getDistanceTo(IGUIElement)
128         */
129        @Override
130        public double getDistanceTo(IGUIElement otherElement) {
131            if (this == otherElement) {
132                return 0.0;
133            }
134            else {
135                return 1.0;
136            }
137        }
138
139    }
140
141}
Note: See TracBrowser for help on using the repository browser.