Skip to content

Commit 51170c1

Browse files
authored
test: Add unit tests for Android KeyEvent (#2147)
1 parent 3dfe243 commit 51170c1

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package io.appium.java_client.android.nativekey;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import java.util.Map;
6+
7+
import static org.junit.jupiter.api.Assertions.assertEquals;
8+
import static org.junit.jupiter.api.Assertions.assertThrows;
9+
10+
class KeyEventTest {
11+
12+
@Test
13+
void shouldThrowExceptionWhenKeyCodeIsNotSet() {
14+
var keyEvent = new KeyEvent();
15+
16+
var exception = assertThrows(IllegalStateException.class, keyEvent::build);
17+
18+
assertEquals("The key code must be set", exception.getMessage());
19+
}
20+
21+
@Test
22+
void shouldBuildMinimalParameters() {
23+
var keyEvent = new KeyEvent().withKey(AndroidKey.A);
24+
25+
Map<String, Object> params = keyEvent.build();
26+
27+
assertParameters(params, AndroidKey.A, null, null);
28+
}
29+
30+
@Test
31+
void shouldBuildFullParameters() {
32+
var keyEvent = new KeyEvent()
33+
.withKey(AndroidKey.A)
34+
.withMetaModifier(KeyEventMetaModifier.CAP_LOCKED)
35+
.withFlag(KeyEventFlag.KEEP_TOUCH_MODE);
36+
37+
Map<String, Object> params = keyEvent.build();
38+
39+
assertParameters(params, AndroidKey.A, KeyEventMetaModifier.CAP_LOCKED.getValue(),
40+
KeyEventFlag.KEEP_TOUCH_MODE.getValue());
41+
}
42+
43+
private static void assertParameters(Map<String, Object> params, AndroidKey key, Integer metastate, Integer flags) {
44+
assertEquals(key.getCode(), params.get("keycode"));
45+
assertEquals(metastate, params.get("metastate"));
46+
assertEquals(flags, params.get("flags"));
47+
}
48+
}

0 commit comments

Comments
 (0)