21
21
import static org .hamcrest .Matchers .instanceOf ;
22
22
import static org .junit .Assert .assertThat ;
23
23
import static org .junit .Assert .assertTrue ;
24
+ import static org .mockito .Matchers .any ;
24
25
import static org .mockito .Mockito .mock ;
26
+ import static org .mockito .Mockito .times ;
27
+ import static org .mockito .Mockito .verify ;
28
+ import static org .mockito .Mockito .verifyNoMoreInteractions ;
25
29
import static org .mockito .Mockito .when ;
26
30
import static org .openqa .selenium .testing .TestUtilities .catchThrowable ;
27
31
@@ -125,6 +129,32 @@ public void findFourElementBy() {
125
129
126
130
ByAll by = new ByAll (By .name ("cheese" ), By .name ("photo" ));
127
131
assertThat (by .findElement (driver ), equalTo (elem1 ));
132
+
133
+ verify (driver , times (1 )).findElements (any (By .class ));
134
+ verifyNoMoreInteractions (driver );
135
+ }
136
+
137
+ @ Test
138
+ public void findFourElementByInReverseOrder () {
139
+ final WebElement elem1 = mock (WebElement .class , "webElement1" );
140
+ final WebElement elem2 = mock (WebElement .class , "webElement2" );
141
+ final WebElement elem3 = mock (WebElement .class , "webElement3" );
142
+ final WebElement elem4 = mock (WebElement .class , "webElement4" );
143
+ final List <WebElement > elems12 = new ArrayList <>();
144
+ elems12 .add (elem1 );
145
+ elems12 .add (elem2 );
146
+ final List <WebElement > elems34 = new ArrayList <>();
147
+ elems34 .add (elem3 );
148
+ elems34 .add (elem4 );
149
+
150
+ when (driver .findElements (By .name ("cheese" ))).thenReturn (elems12 );
151
+ when (driver .findElements (By .name ("photo" ))).thenReturn (elems34 );
152
+
153
+ ByAll by = new ByAll (By .name ("photo" ), By .name ("cheese" ));
154
+ assertThat (by .findElement (driver ), equalTo (elem3 ));
155
+
156
+ verify (driver , times (1 )).findElements (any (By .class ));
157
+ verifyNoMoreInteractions (driver );
128
158
}
129
159
130
160
@ Test
@@ -148,6 +178,35 @@ public void findFourElementsByAny() {
148
178
149
179
ByAll by = new ByAll (By .name ("cheese" ), By .name ("photo" ));
150
180
assertThat (by .findElements (driver ), equalTo (elems1234 ));
181
+
182
+ verify (driver , times (2 )).findElements (any (By .class ));
183
+ verifyNoMoreInteractions (driver );
184
+ }
185
+
186
+ @ Test
187
+ public void findFourElementsByAnyInReverseOrder () {
188
+ final WebElement elem1 = mock (WebElement .class , "webElement1" );
189
+ final WebElement elem2 = mock (WebElement .class , "webElement2" );
190
+ final WebElement elem3 = mock (WebElement .class , "webElement3" );
191
+ final WebElement elem4 = mock (WebElement .class , "webElement4" );
192
+ final List <WebElement > elems12 = new ArrayList <>();
193
+ elems12 .add (elem1 );
194
+ elems12 .add (elem2 );
195
+ final List <WebElement > elems34 = new ArrayList <>();
196
+ elems34 .add (elem3 );
197
+ elems34 .add (elem4 );
198
+ final List <WebElement > elems3412 = new ArrayList <>();
199
+ elems3412 .addAll (elems34 );
200
+ elems3412 .addAll (elems12 );
201
+
202
+ when (driver .findElements (By .name ("cheese" ))).thenReturn (elems12 );
203
+ when (driver .findElements (By .name ("photo" ))).thenReturn (elems34 );
204
+
205
+ ByAll by = new ByAll (By .name ("photo" ), By .name ("cheese" ));
206
+ assertThat (by .findElements (driver ), equalTo (elems3412 ));
207
+
208
+ verify (driver , times (2 )).findElements (any (By .class ));
209
+ verifyNoMoreInteractions (driver );
151
210
}
152
211
153
212
@ Test
0 commit comments