| 1 package org.objectweb.celtix.bus.ws.rm.persistence; 2 3 import java.util.ArrayList ; 4 5 import junit.framework.TestCase; 6 7 import org.easymock.classextension.EasyMock; 8 import org.easymock.classextension.IMocksControl; 9 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.expectLastCall().andReturn("org.objectweb.celtix.bus.ws.rm.persistence.no.such.StoreClass"); 31 control.replay(); 32 33 RMStoreFactory factory = new RMStoreFactory(); 34 try { 35 factory.createStore(s); 36 fail("Expected RMStoreException was not thrown."); 37 } catch (RMStoreException ex) { 38 assert ex.getCause() instanceof ClassNotFoundException ; 39 } 40 control.verify(); 41 } 42 43 public void testStoreCreationNoParams() { 44 IMocksControl control = EasyMock.createNiceControl(); 45 Configuration c = control.createMock(Configuration.class); 46 StoreType s = control.createMock(StoreType.class); 47 c.getObject(StoreType.class, "store"); 48 EasyMock.expectLastCall().andReturn(s); 49 s.getStoreClass(); 50 EasyMock.expectLastCall().andReturn("org.objectweb.celtix.bus.ws.rm.persistence.file.RMFileStore"); 51 s.getInitParam(); 52 EasyMock.expectLastCall().andReturn(new ArrayList <StoreInitParamType>()); 53 control.replay(); 54 55 RMStoreFactory factory = new RMStoreFactory(); 56 RMStore store = factory.getStore(c); 57 assert store instanceof RMFileStore; 58 59 control.verify(); 60 } 61 62 public void testStoreCreationWithParams() { 63 IMocksControl control = EasyMock.createNiceControl(); 64 Configuration c = control.createMock(Configuration.class); 65 StoreType s = RMUtils.getWSRMConfFactory().createStoreType(); 66 s.setStoreClass("org.objectweb.celtix.bus.ws.rm.persistence.file.RMFileStore"); 67 StoreInitParamType param = RMUtils.getWSRMConfFactory().createStoreInitParamType(); 68 param.setParamName(RMFileStore.FILE_STORE_DIR); 69 param.setParamValue("dbs/rm"); 70 s.getInitParam().add(param); 71 param = RMUtils.getWSRMConfFactory().createStoreInitParamType(); 72 param.setParamName("prop2"); 73 param.setParamValue("val2"); 74 s.getInitParam().add(param); 75 c.getObject(StoreType.class, "store"); 76 EasyMock.expectLastCall().andReturn(s); 77 control.replay(); 78 79 RMStoreFactory factory = new RMStoreFactory(); 80 RMStore store = factory.getStore(c); 81 assert store instanceof RMFileStore; 82 83 control.verify(); 84 } 85 } 86 | Popular Tags |