Skip to content

Commit 7e2172a

Browse files
committed
Implementing handy ImmutableCapabilities constructors
1 parent 1d6c965 commit 7e2172a

File tree

2 files changed

+74
-3
lines changed

2 files changed

+74
-3
lines changed

java/client/src/org/openqa/selenium/ImmutableCapabilities.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,40 @@ public class ImmutableCapabilities implements Capabilities, Serializable {
3232

3333
private final Map<String, Object> caps = new HashMap<>();
3434

35+
public ImmutableCapabilities() { }
36+
37+
public ImmutableCapabilities(String k, Object v) {
38+
caps.put(k, v);
39+
}
40+
41+
public ImmutableCapabilities(String k1, Object v1, String k2, Object v2) {
42+
caps.put(k1, v1);
43+
caps.put(k2, v2);
44+
}
45+
46+
public ImmutableCapabilities(String k1, Object v1, String k2, Object v2, String k3, Object v3) {
47+
caps.put(k1, v1);
48+
caps.put(k2, v2);
49+
caps.put(k3, v3);
50+
}
51+
52+
public ImmutableCapabilities(String k1, Object v1, String k2, Object v2, String k3, Object v3,
53+
String k4, Object v4) {
54+
caps.put(k1, v1);
55+
caps.put(k2, v2);
56+
caps.put(k3, v3);
57+
caps.put(k4, v4);
58+
}
59+
60+
public ImmutableCapabilities(String k1, Object v1, String k2, Object v2, String k3, Object v3,
61+
String k4, Object v4, String k5, Object v5) {
62+
caps.put(k1, v1);
63+
caps.put(k2, v2);
64+
caps.put(k3, v3);
65+
caps.put(k4, v4);
66+
caps.put(k5, v5);
67+
}
68+
3569
public ImmutableCapabilities(Capabilities other) {
3670
this(other.asMap());
3771
}

java/client/test/org/openqa/selenium/ImmutableCapabilitiesTest.java

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,55 @@
2020
import static org.junit.Assert.assertEquals;
2121
import static org.junit.Assert.assertNotEquals;
2222

23+
import com.google.common.collect.ImmutableMap;
24+
2325
import org.junit.Test;
2426
import org.junit.runner.RunWith;
2527
import org.junit.runners.JUnit4;
26-
import org.openqa.selenium.remote.DesiredCapabilities;
2728

2829
@RunWith(JUnit4.class)
2930
public class ImmutableCapabilitiesTest {
3031

32+
@Test
33+
public void canCreateEmptyCapabilities() {
34+
Capabilities empty = new ImmutableCapabilities();
35+
assertEquals(empty.asMap(), ImmutableMap.of());
36+
}
37+
38+
@Test
39+
public void canCreateSinglePairCapabilities() {
40+
Capabilities empty = new ImmutableCapabilities("c1", "v1");
41+
assertEquals(empty.asMap(), ImmutableMap.of("c1", "v1"));
42+
}
43+
44+
@Test
45+
public void canCreateTwoPairCapabilities() {
46+
Capabilities empty = new ImmutableCapabilities("c1", "v1", "c2", 2);
47+
assertEquals(empty.asMap(), ImmutableMap.of("c1", "v1", "c2", 2));
48+
}
49+
50+
@Test
51+
public void canCreateThreePairCapabilities() {
52+
Capabilities empty = new ImmutableCapabilities("c1", "v1", "c2", 2, "c3", true);
53+
assertEquals(empty.asMap(), ImmutableMap.of("c1", "v1", "c2", 2, "c3", true));
54+
}
55+
56+
@Test
57+
public void canCreateFourPairCapabilities() {
58+
Capabilities empty = new ImmutableCapabilities("c1", "v1", "c2", 2, "c3", true, "c4", "v4");
59+
assertEquals(empty.asMap(), ImmutableMap.of("c1", "v1", "c2", 2, "c3", true, "c4", "v4"));
60+
}
61+
62+
@Test
63+
public void canCreateFivePairCapabilities() {
64+
Capabilities empty = new ImmutableCapabilities("c1", "v1", "c2", 2, "c3", true, "c4", "v4", "c5", "v5");
65+
assertEquals(empty.asMap(), ImmutableMap.of("c1", "v1", "c2", 2, "c3", true, "c4", "v4", "c5", "v5"));
66+
}
67+
3168
@Test
3269
public void canCompareCapabilities() {
33-
DesiredCapabilities caps1 = new DesiredCapabilities();
34-
DesiredCapabilities caps2 = new DesiredCapabilities();
70+
MutableCapabilities caps1 = new MutableCapabilities();
71+
MutableCapabilities caps2 = new MutableCapabilities();
3572
assertEquals(new ImmutableCapabilities(caps1), new ImmutableCapabilities(caps2));
3673

3774
caps1.setCapability("xxx", "yyy");

0 commit comments

Comments
 (0)