1
1
/*
2
- * Copyright (c) 2004-2020 , Oracle and/or its affiliates.
2
+ * Copyright (c) 2004-2021 , Oracle and/or its affiliates.
3
3
*
4
4
* Licensed under the 2-clause BSD license.
5
5
*
30
30
31
31
import java .io .IOException ;
32
32
import java .util .List ;
33
+ import java .util .Map ;
33
34
34
35
import com .oracle .labs .mlrg .olcut .config .test .Ape ;
36
+ import com .oracle .labs .mlrg .olcut .config .test .Barbary ;
37
+ import com .oracle .labs .mlrg .olcut .config .test .Chimp ;
38
+ import com .oracle .labs .mlrg .olcut .config .test .Gorilla ;
35
39
import com .oracle .labs .mlrg .olcut .config .test .Monkey ;
40
+ import com .oracle .labs .mlrg .olcut .config .test .Orangutan ;
41
+ import com .oracle .labs .mlrg .olcut .config .test .Rhesus ;
36
42
import org .junit .jupiter .api .Test ;
37
43
38
44
import static org .junit .jupiter .api .Assertions .*;
@@ -58,6 +64,41 @@ public void lookupAllTest() throws ClassNotFoundException {
58
64
assertEquals (3 , apes .size (), "Didn't find all the Ape classes" );
59
65
}
60
66
67
+ @ SuppressWarnings ("unchecked" )//Looking up a specific class via it's full name
68
+ @ Test
69
+ public void lookupAllMapTest () throws ClassNotFoundException {
70
+ ConfigurationManager cm = new ConfigurationManager ("genericConfig.xml" );
71
+
72
+ Class <Monkey > clazz = (Class <Monkey >) Class .forName ("com.oracle.labs.mlrg.olcut.config.test.Monkey" );
73
+ Map <String ,Monkey > monkeys = cm .lookupAllMap (clazz );
74
+
75
+ assertEquals (5 , monkeys .size (), "Didn't find all the MonkeyConfigurable classes" );
76
+ assertTrue (monkeys .get ("monkey-one" ) instanceof Gorilla );
77
+ assertTrue (monkeys .get ("monkey-two" ) instanceof Chimp );
78
+ assertTrue (monkeys .get ("monkey-three" ) instanceof Orangutan );
79
+ assertTrue (monkeys .get ("monkey-four" ) instanceof Rhesus );
80
+ assertTrue (monkeys .get ("monkey-five" ) instanceof Barbary );
81
+
82
+ Class <Ape > apeClazz = (Class <Ape >) Class .forName ("com.oracle.labs.mlrg.olcut.config.test.Ape" );
83
+ Map <String ,Ape > apes = cm .lookupAllMap (apeClazz );
84
+
85
+ assertEquals (3 , apes .size (), "Didn't find all the Ape classes" );
86
+ assertTrue (apes .get ("monkey-one" ) instanceof Gorilla );
87
+ assertTrue (apes .get ("monkey-two" ) instanceof Chimp );
88
+ assertTrue (apes .get ("monkey-three" ) instanceof Orangutan );
89
+
90
+ Class <Gorilla > gorillaClazz = (Class <Gorilla >) Class .forName ("com.oracle.labs.mlrg.olcut.config.test.Gorilla" );
91
+ Map <String ,Gorilla > gorillas = cm .lookupAllMap (gorillaClazz );
92
+
93
+ assertEquals (1 ,gorillas .size (),"Didn't find the Gorilla instance" );
94
+ assertTrue (gorillas .get ("monkey-one" ) instanceof Gorilla );
95
+
96
+ Class <ArrayStringConfigurable > arrStrConfClazz = (Class <ArrayStringConfigurable >) Class .forName ("com.oracle.labs.mlrg.olcut.config.ArrayStringConfigurable" );
97
+ Map <String ,ArrayStringConfigurable > arrays = cm .lookupAllMap (arrStrConfClazz );
98
+
99
+ assertTrue (arrays .isEmpty ());
100
+ }
101
+
61
102
@ Test
62
103
public void correctListConfig () throws IOException {
63
104
ConfigurationManager cm = new ConfigurationManager ("genericConfig.xml" );
0 commit comments