1
2
3
4
5
6
7
8 /
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 public class DirectoryParametersTest extends LedgeTestCase
72 {
73 private ContextFactory contextFactory;
74
75 private FileSystem fs;
76
77 public void setUp()
78 throws Exception
79 {
80 fs = FileSystem.getStandardFileSystem("src/test/resources");
81 InputSource source = new InputSource(fs.getInputStream(
82 "config/org.objectledge.logging.LoggingConfigurator.xml"));
83 DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
84 Document logConfig = builder.parse(source);
85 LedgeDOMConfigurator configurator = new LedgeDOMConfigurator(fs);
86 configurator.doConfigure(logConfig.getDocumentElement(), LogManager.getLoggerRepository());
87
88 Logger logger = new Log4JLogger(org.apache.log4j.Logger.
89 getLogger(ContextFactory.class));
90 DataSource ds = getDataSource();
91 DefaultPicoContainer container = new DefaultPicoContainer();
92 IdGenerator idGenerator = new IdGenerator(ds);
93 JotmTransaction transaction = new JotmTransaction(0, 120, new Context(), logger, null);
94 Database database = new DefaultDatabase(ds, idGenerator, transaction);
95 Persistence persistence = new DefaultPersistence(database, logger);
96 container.registerComponentInstance(Persistence.class, persistence);
97 Configuration config = getConfig("naming/dbNaming.xml");
98 contextFactory = new ContextFactory(container, config, logger);
99 }
100
101
102
103
104 public void testGetString()
105 throws Exception
106 {
107 DirContext ctx = contextFactory.getDirContext("people");
108 assertNotNull(ctx);
109 Attributes attrs = new BasicAttributes(true);
110 ctx.createSubcontext("bar", attrs);
111 DirContext dctx = (DirContext)ctx.lookup("bar");
112 assertNotNull(dctx);
113 Parameters parameters = new DirectoryParameters(dctx);
114 assertEquals(parameters.getParameterNames().length,0);
115 assertEquals(parameters.get("foo","foo"),"foo");
116 try
117 {
118 parameters.get("foo");
119 fail("should throw the exception");
120 }
121 catch(UndefinedParameterException e)
122 {
123
124 }
125 parameters.add("foo","bar");
126 assertEquals(parameters.get("foo","foo"),"bar");
127 parameters.add("foo","bar2");
128 try
129 {
130 parameters.get("foo");
131 fail("should throw the exception");
132 }
133 catch(AmbiguousParameterException e)
134 {
135
136 }
137 assertEquals(parameters.getStrings("foo").length,2);
138 assertEquals(parameters.getStrings("bar").length,0);
139 assertEquals(parameters.getParameterNames().length,1);
140 assertEquals(parameters.isDefined("foo"),true);
141 assertEquals(parameters.isDefined("bar"),false);
142 parameters.add("bar","foo");
143 assertEquals(parameters.get("bar","bar"),"foo");
144 parameters.remove("bar");
145 assertEquals(parameters.get("bar","bar"),"bar");
146 parameters.add("bar","foo");
147 assertEquals(parameters.get("bar","bar"),"foo");
148 parameters.remove("bar", "foo");
149 assertEquals(parameters.get("bar","bar"),"bar");
150 parameters.remove();
151 assertEquals(parameters.getParameterNames().length,0);
152 parameters.add("bar","foo");
153 parameters.add("foo","bar");
154 assertEquals(parameters.getParameterNames().length,2);
155 HashSet set = new HashSet();
156 set.add("foo");
157 parameters.remove(set);
158 assertEquals(parameters.get("bar","bar"),"foo");
159 assertEquals(parameters.get("foo","foo"),"foo");
160 parameters.add("bar","foo2");
161 parameters.add("foo","bar");
162 parameters.removeExcept(set);
163 assertEquals(parameters.get("bar","bar"),"bar");
164 assertEquals(parameters.get("foo","foo"),"bar");
165 parameters.remove();
166 parameters.add("foo", new String[] { "bar" });
167 parameters.add("foo", new String[] { "foo", "buz" });
168 parameters.add("bar", new String[] { "foo" });
169 assertEquals(parameters.getParameterNames().length, 2);
170 assertEquals(parameters.getStrings("foo").length, 3);
171
172 parameters.remove();
173 Parameters temp = new DefaultParameters();
174 temp.add("foo",2);
175 temp.add("bar",2);
176 parameters.add("foo",1);
177 parameters.add("bar",1);
178 parameters.add(temp,false);
179 assertEquals(parameters.getInts("foo").length,2);
180 assertEquals(parameters.getInts("bar").length,2);
181 parameters.remove();
182 parameters.add("foo",1);
183 parameters.add("bar",1);
184 parameters.add(temp,true);
185 assertEquals(parameters.getInts("foo").length,1);
186 assertEquals(parameters.getInts("bar").length,1);
187 assertEquals(parameters.getInt("foo"),2);
188 assertEquals(parameters.getInt("bar"),2);
189
190
191 parameters.remove();
192 parameters.add("foo","bar");
193 parameters.set("foo","foo");
194 assertEquals(parameters.get("foo","bar"),"foo");
195 parameters.set("foo", new String[] { "foo", "buz" });
196 assertEquals(parameters.getStrings("foo").length,2);
197 parameters.set("foo", new boolean[] {true});
198 assertEquals(parameters.getBoolean("foo"),true);
199 parameters.set("foo", new float[] {1.0F, 2.0F});
200 assertEquals(parameters.getStrings("foo").length,2);
201 parameters.set("foo", new int[] {1,2});
202 assertEquals(parameters.getStrings("foo").length,2);
203 parameters.set("foo", new long[] {1,2});
204 assertEquals(parameters.getStrings("foo").length,2);
205 parameters.toString();
206 Parameters params = parameters.getChild("bar");
207 assertEquals(params.getParameterNames().length,0);
208 }
209
210
211
212 private DataSource getDataSource()
213 throws Exception
214 {
215 jdbcDataSource ds = new jdbcDataSource();
216 ds.setDatabase("jdbc:hsqldb:.");
217 ds.setUser("sa");
218 ds.setPassword("");
219 if(!DatabaseUtils.hasTable(ds, "ledge_id_table"))
220 {
221 DatabaseUtils.runScript(ds, fs.getReader("sql/database/IdGeneratorTables.sql", "UTF-8"));
222 }
223 if(!DatabaseUtils.hasTable(ds, "ledge_naming_context"))
224 {
225 DatabaseUtils.runScript(ds, fs.getReader("sql/naming/db/DBNamingTables.sql", "UTF-8"));
226 }
227 DatabaseUtils.runScript(ds, fs.getReader("sql/naming/db/DBNamingTest.sql", "UTF-8"));
228 return ds;
229 }
230
231 private Configuration getConfig(String name)
232 throws Exception
233 {
234 return getConfig(fs, name);
235 }
236
237 }