1 7 package org.jboss.cache.loader; 8 9 import junit.framework.Test; 10 import junit.framework.TestSuite; 11 import org.apache.derby.jdbc.EmbeddedXADataSource; 12 import org.jboss.cache.Fqn; 13 import org.jboss.cache.transaction.DummyTransactionManager; 14 15 import javax.naming.Context ; 16 import javax.naming.InitialContext ; 17 import javax.naming.NameNotFoundException ; 18 import java.util.Properties ; 19 20 32 public class JDBCCacheLoaderDerbyDSTest 33 extends CacheLoaderTestsBase 34 { 35 private String old_factory = null; 36 private final String FACTORY = "org.jboss.cache.transaction.DummyContextFactory"; 37 private final String JNDI_NAME = "java:/DerbyDS"; 38 39 protected void configureCache() throws Exception 40 { 41 old_factory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY); 42 System.setProperty(Context.INITIAL_CONTEXT_FACTORY, FACTORY); 43 DummyTransactionManager.getInstance(); 44 45 Context context = new InitialContext (); 46 try 47 { 48 Object obj = context.lookup(JNDI_NAME); 49 assertNull(JNDI_NAME + " not bound", obj); 50 } 51 catch (NameNotFoundException n) 52 { 53 } 55 56 Properties prop = new Properties (); 57 try 58 { 59 prop.load(this.getClass().getClassLoader().getResourceAsStream("cache-jdbc.properties")); 60 } 61 catch (Exception e) 62 { 63 System.out.println("Error loading jdbc properties "); 64 } 65 66 EmbeddedXADataSource ds = new EmbeddedXADataSource(); 68 ds.setDatabaseName("jbossdb"); 69 ds.setCreateDatabase("create"); 70 ds.setUser(prop.getProperty("cache.jdbc.user")); 71 ; 72 ds.setPassword(prop.getProperty("cache.jdbc.password")); 73 74 75 String props = "cache.jdbc.datasource =" + JNDI_NAME + "\n" + 76 "cache.jdbc.node.type=" + prop.getProperty("cache.jdbc.node.type"); 77 78 79 cache.getConfiguration().setCacheLoaderConfig(getSingleCacheLoaderConfig("", "org.jboss.cache.loader.JDBCCacheLoader", props, false, true, false)); 80 cache.create(); 81 82 83 context.bind(JNDI_NAME, ds); 84 assertNotNull(JNDI_NAME + " bound", context.lookup(JNDI_NAME)); 85 } 86 87 public void testLargeObject() 88 { 89 try 90 { 91 String key = "LargeObj"; 92 StringBuffer text = new StringBuffer ("LargeObject"); 94 while (text.toString().getBytes().length < (1024 * 100)) 95 { 96 text.append(text); 97 } 98 String initialValue = text.toString(); 99 loader.remove(Fqn.fromString("/")); 101 102 Object retVal = loader.put(FQN, key, initialValue); 103 assertNull(retVal); 104 addDelay(); 105 assertEquals(initialValue, (String ) loader.get(FQN).get(key)); 107 String updatedValue = initialValue.concat(("UpdatedValue")); 109 retVal = loader.put(FQN, key, updatedValue); 110 assertEquals(initialValue, (String ) retVal); 111 assertEquals(updatedValue, (String ) loader.get(FQN).get(key)); 112 } 113 catch (Exception e) 114 { 115 fail(e.toString()); 116 } 117 } 118 119 public void testTransactionRollback() throws Exception 120 { 121 } 123 124 public void testIntegratedTransactionRollback() throws Exception 125 { 126 } 128 129 public static Test suite() 130 { 131 return new TestSuite(JDBCCacheLoaderDerbyDSTest.class); 132 } 133 134 public static void main(String [] args) 135 { 136 junit.textui.TestRunner.run(suite()); 137 } 138 139 protected void tearDown() throws Exception 140 { 141 super.tearDown(); 142 143 Context ctx = new InitialContext (); 144 ctx.unbind(JNDI_NAME); 145 if (old_factory != null) 146 { 147 System.setProperty(Context.INITIAL_CONTEXT_FACTORY, old_factory); 148 } 149 else 150 { 151 System.getProperties().remove(Context.INITIAL_CONTEXT_FACTORY); 152 } 153 } 154 } 155 | Popular Tags |