1 22 package org.jboss.test.cmp2.keygen.test; 23 24 import java.util.Collection ; 25 import javax.naming.Context ; 26 import javax.naming.InitialContext ; 27 28 import junit.framework.Test; 29 import org.jboss.logging.Logger; 30 import org.jboss.test.JBossTestCase; 31 import org.jboss.test.cmp2.keygen.ejb.UnknownPKLocal; 32 import org.jboss.test.cmp2.keygen.ejb.UnknownPKLocalHome; 33 import org.jboss.test.cmp2.keygen.ejb.IntegerPKLocalHome; 34 import org.jboss.test.cmp2.keygen.ejb.UnknownPKHome; 35 import org.jboss.test.cmp2.keygen.ejb.UnknownPK; 36 import org.jboss.test.util.ejb.EJBTestCase; 37 38 44 public class KeyGenerationUnitTestCase extends EJBTestCase 45 { 46 static final Logger log = Logger.getLogger(KeyGenerationUnitTestCase.class); 47 48 public static Test suite() throws Exception 49 { 50 return JBossTestCase.getDeploySetup(KeyGenerationUnitTestCase.class, "cmp2-keygen.jar"); 51 } 52 53 public KeyGenerationUnitTestCase(String name) 54 { 55 super(name); 56 } 57 58 public void testJBAS1249() throws Exception 59 { 60 UnknownPKHome home = getUnknownPKRemoteHome("remote/TestPkSqlEJB"); 61 UnknownPK ejb = home.create("kloop"); 62 try 63 { 64 ejb.getHandle().getEJBObject(); 65 } 66 catch(Exception e) 67 { 68 fail("Handler.getEJBObject() worked"); 69 throw e; 70 } 71 finally 72 { 73 ejb.remove(); 74 } 75 } 76 77 public void testUUIDKeyGenerator() throws Exception 78 { 79 UnknownPKLocalHome home = getUnknownPKHome("local/TestUUIDKeyGenEJB"); 80 UnknownPKLocal ejb1 = home.create("testUUIDKeyGenerator"); 81 UnknownPKLocal ejb2 = home.create("testUUIDKeyGenerator"); 82 try 83 { 84 UnknownPKLocal ejb1a = home.findByPrimaryKey(ejb1.getPrimaryKey()); 85 assertTrue(ejb1.isIdentical(ejb1a)); 86 assertTrue(ejb1.isIdentical(ejb2) == false); 87 assertTrue(ejb1.getPrimaryKey().equals(ejb2.getPrimaryKey()) == false); 88 } 89 finally 90 { 91 ejb1.remove(); 92 ejb2.remove(); 93 } 94 } 95 96 public void testPkSQLKeyGenerator() throws Exception 97 { 98 UnknownPKLocalHome home = getUnknownPKHome("local/TestPkSqlEJB"); 99 UnknownPKLocal ejb1 = home.create("testPkSQLKeyGenerator"); 100 Thread.sleep(50); 101 UnknownPKLocal ejb2 = home.create("testPkSQLKeyGenerator"); 102 try 103 { 104 UnknownPKLocal ejb1a = home.findByPrimaryKey(ejb1.getPrimaryKey()); 105 assertTrue(ejb1.isIdentical(ejb1a)); 106 assertTrue(ejb1.isIdentical(ejb2) == false); 107 assertTrue(ejb1.getPrimaryKey().equals(ejb2.getPrimaryKey()) == false); 108 } 109 finally 110 { 111 ejb1.remove(); 112 ejb2.remove(); 113 } 114 } 115 116 public void testHsqldbKeyGenerator() throws Exception 117 { 118 UnknownPKLocalHome home = getUnknownPKHome("local/TestHsqldbEJB"); 119 UnknownPKLocal ejb1 = home.create("testHsqldbKeyGenerator"); 120 UnknownPKLocal ejb2 = home.create("testHsqldbKeyGenerator"); 121 try 122 { 123 UnknownPKLocal ejb1a = home.findByPrimaryKey(ejb1.getPrimaryKey()); 124 assertTrue(ejb1.isIdentical(ejb1a)); 125 assertTrue(ejb1.isIdentical(ejb2) == false); 126 assertTrue(ejb1.getPrimaryKey().equals(ejb2.getPrimaryKey()) == false); 127 } 128 finally 129 { 130 ejb1.remove(); 131 ejb2.remove(); 132 } 133 } 134 135 public void testHsqldbIntegerKeyGenerator() throws Exception 136 { 137 Context ctx = new InitialContext (); 138 IntegerPKLocalHome home = (IntegerPKLocalHome) ctx.lookup("java:comp/env/local/TestHsqldbIntegerEJB"); 139 UnknownPKLocal ejb1 = home.create("testHsqldbIntegerKeyGenerator"); 140 UnknownPKLocal ejb2 = home.create("testHsqldbIntegerKeyGenerator"); 141 try 142 { 143 Integer key = (Integer ) ejb1.getPrimaryKey(); 144 UnknownPKLocal ejb1a = home.findByPrimaryKey(key); 145 assertTrue(ejb1.isIdentical(ejb1a)); 146 assertTrue(ejb1.isIdentical(ejb2) == false); 147 assertTrue(ejb1.getPrimaryKey().equals(ejb2.getPrimaryKey()) == false); 148 } 149 finally 150 { 151 ejb1.remove(); 152 ejb2.remove(); 153 } 154 } 155 156 public void testInvalidHsqldbIntegerKeyGenerator() throws Exception 157 { 158 Context ctx = new InitialContext (); 159 IntegerPKLocalHome home = (IntegerPKLocalHome) ctx.lookup("java:comp/env/local/InvalidHsqldbIntegerEJB"); 160 try 161 { 162 UnknownPKLocal ejb1 = home.create("testInvalidHsqldbIntegerKeyGenerator"); 163 Object key = ejb1.getPrimaryKey(); 164 assertTrue("InvalidHsqldbIntegerEJB key != null", key != null); 165 } 166 catch(Exception e) 167 { 168 log.debug("create failed as expected", e); 169 Collection beans = home.findAll(); 171 UnknownPKLocal ejb1 = (UnknownPKLocal) beans.iterator().next(); 172 ejb1.remove(); 173 } 174 } 175 176 public void testOtherKeyGenerator() throws Exception 177 { 178 UnknownPKLocalHome home = getUnknownPKHome("local/TestOtherEJB"); 179 UnknownPKLocal ejb1 = home.create("testOtherKeyGenerator1"); 180 UnknownPKLocal ejb2 = home.create("testOtherKeyGenerator2"); 181 try 182 { 183 UnknownPKLocal ejb1a = home.findByPrimaryKey(ejb1.getPrimaryKey()); 184 assertTrue(ejb1.isIdentical(ejb1a)); 185 assertEquals("testOtherKeyGenerator1", ejb1a.getValue()); 186 assertTrue(ejb1.isIdentical(ejb2) == false); 187 assertTrue(ejb1.getPrimaryKey().equals(ejb2.getPrimaryKey()) == false); 188 } 189 finally 190 { 191 ejb1.remove(); 192 ejb2.remove(); 193 } 194 } 195 196 private UnknownPKLocalHome getUnknownPKHome(String jndiName) throws Exception 197 { 198 return (UnknownPKLocalHome) getHome(jndiName); 199 } 200 201 private UnknownPKHome getUnknownPKRemoteHome(String jndiName) throws Exception 202 { 203 return (UnknownPKHome)getHome(jndiName); 204 } 205 206 private Object getHome(String jndiName) throws Exception 207 { 208 Context ctx = new InitialContext (); 209 return ctx.lookup("java:comp/env/"+jndiName); 210 } 211 } 212 | Popular Tags |