1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.giraph.conf;
20
21 import org.junit.Test;
22
23 import static org.apache.giraph.conf.ClassConfOption.getClassesOfType;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.fail;
26
27 public class TestGiraphConfiguration {
28 public interface If { }
29 public class A implements If { }
30 public class B implements If { }
31 public class C implements If { }
32
33 @Test
34 public void testSetClasses() {
35 GiraphConfiguration conf = new GiraphConfiguration();
36 conf.setClasses("foo", If.class, A.class, B.class);
37 Class<?>[] klasses = conf.getClasses("foo");
38 assertEquals(2, klasses.length);
39 assertEquals(A.class, klasses[0]);
40 assertEquals(B.class, klasses[1]);
41
42 try {
43 conf.setClasses("foo", A.class, B.class);
44 fail();
45 } catch (RuntimeException e) {
46 assertEquals(2, conf.getClasses("foo").length);
47 }
48
49 Class<? extends If>[] klasses2 = getClassesOfType(conf, "foo", If.class);
50 assertEquals(2, klasses2.length);
51 assertEquals(A.class, klasses2[0]);
52 assertEquals(B.class, klasses2[1]);
53 }
54
55 @Test
56 public void testAddToClasses() {
57 GiraphConfiguration conf = new GiraphConfiguration();
58
59 conf.setClasses("foo", If.class, A.class, B.class);
60 ClassConfOption.addToClasses(conf, "foo", C.class, If.class);
61 Class<?>[] klasses = conf.getClasses("foo");
62 assertEquals(3, klasses.length);
63 assertEquals(A.class, klasses[0]);
64 assertEquals(B.class, klasses[1]);
65 assertEquals(C.class, klasses[2]);
66
67 ClassConfOption.addToClasses(conf, "bar", B.class, If.class);
68 klasses = conf.getClasses("bar");
69 assertEquals(1, klasses.length);
70 assertEquals(B.class, klasses[0]);
71 }
72 }