01: package org.objectweb.celtix.bus.ws.rm.persistence;
02:
03: import java.util.ArrayList;
04:
05: import junit.framework.TestCase;
06:
07: import org.easymock.classextension.EasyMock;
08: import org.easymock.classextension.IMocksControl;
09: import org.objectweb.celtix.bus.configuration.wsrm.StoreInitParamType;
10: import org.objectweb.celtix.bus.configuration.wsrm.StoreType;
11: import org.objectweb.celtix.bus.ws.rm.RMUtils;
12: import org.objectweb.celtix.bus.ws.rm.persistence.file.RMFileStore;
13: import org.objectweb.celtix.configuration.Configuration;
14: import org.objectweb.celtix.ws.rm.persistence.RMStore;
15:
16: public class RMStoreFactoryTest extends TestCase {
17:
18: public void setUp() {
19: RMStoreFactory.theStore = null;
20: }
21:
22: public void tearDown() {
23: RMStoreFactory.theStore = null;
24: }
25:
26: public void testStoreCreationFailure() {
27: IMocksControl control = EasyMock.createNiceControl();
28: StoreType s = control.createMock(StoreType.class);
29: s.getStoreClass();
30: EasyMock
31: .expectLastCall()
32: .andReturn(
33: "org.objectweb.celtix.bus.ws.rm.persistence.no.such.StoreClass");
34: control.replay();
35:
36: RMStoreFactory factory = new RMStoreFactory();
37: try {
38: factory.createStore(s);
39: fail("Expected RMStoreException was not thrown.");
40: } catch (RMStoreException ex) {
41: assert ex.getCause() instanceof ClassNotFoundException;
42: }
43: control.verify();
44: }
45:
46: public void testStoreCreationNoParams() {
47: IMocksControl control = EasyMock.createNiceControl();
48: Configuration c = control.createMock(Configuration.class);
49: StoreType s = control.createMock(StoreType.class);
50: c.getObject(StoreType.class, "store");
51: EasyMock.expectLastCall().andReturn(s);
52: s.getStoreClass();
53: EasyMock
54: .expectLastCall()
55: .andReturn(
56: "org.objectweb.celtix.bus.ws.rm.persistence.file.RMFileStore");
57: s.getInitParam();
58: EasyMock.expectLastCall().andReturn(
59: new ArrayList<StoreInitParamType>());
60: control.replay();
61:
62: RMStoreFactory factory = new RMStoreFactory();
63: RMStore store = factory.getStore(c);
64: assert store instanceof RMFileStore;
65:
66: control.verify();
67: }
68:
69: public void testStoreCreationWithParams() {
70: IMocksControl control = EasyMock.createNiceControl();
71: Configuration c = control.createMock(Configuration.class);
72: StoreType s = RMUtils.getWSRMConfFactory().createStoreType();
73: s
74: .setStoreClass("org.objectweb.celtix.bus.ws.rm.persistence.file.RMFileStore");
75: StoreInitParamType param = RMUtils.getWSRMConfFactory()
76: .createStoreInitParamType();
77: param.setParamName(RMFileStore.FILE_STORE_DIR);
78: param.setParamValue("dbs/rm");
79: s.getInitParam().add(param);
80: param = RMUtils.getWSRMConfFactory().createStoreInitParamType();
81: param.setParamName("prop2");
82: param.setParamValue("val2");
83: s.getInitParam().add(param);
84: c.getObject(StoreType.class, "store");
85: EasyMock.expectLastCall().andReturn(s);
86: control.replay();
87:
88: RMStoreFactory factory = new RMStoreFactory();
89: RMStore store = factory.getStore(c);
90: assert store instanceof RMFileStore;
91:
92: control.verify();
93: }
94: }
|