1 22 package org.jboss.test.cmp2.simple; 23 24 import java.util.ArrayList ; 25 import java.util.Collection ; 26 import java.util.Iterator ; 27 import java.util.List ; 28 import java.util.Properties ; 29 import javax.management.MBeanServer ; 30 import javax.management.MBeanServerFactory ; 31 import javax.management.ObjectName ; 32 import javax.naming.InitialContext ; 33 34 import junit.framework.Test; 35 import org.jboss.ejb.EntityContainer; 36 import org.jboss.ejb.plugins.cmp.ejbql.Catalog; 37 import org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager; 38 import org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache; 39 import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge; 40 import org.jboss.mx.server.ServerConstants; 41 import org.jboss.mx.server.registry.MBeanEntry; 42 import org.jboss.mx.server.registry.MBeanRegistry; 43 import org.jboss.mx.util.MBeanProxyExt; 44 import org.jboss.test.JBossTestCase; 45 import org.jboss.test.util.ejb.EJBTestCase; 46 47 public class PageSizeUnitTestCase extends EJBTestCase 48 { 49 private JDBCStoreManager jdbcStoreManager; 50 private List pkList; 51 52 public static Test suite() throws Exception 53 { 54 return JBossTestCase.getDeploySetup( 55 PageSizeUnitTestCase.class, "cmp2-simple.jar"); 56 } 57 58 public PageSizeUnitTestCase(String name) 59 { 60 super(name); 61 } 62 63 private SimpleHome getSimpleHome() 64 { 65 try 66 { 67 InitialContext jndiContext = new InitialContext (); 68 return (SimpleHome) jndiContext.lookup("cmp2/simple/Simple"); 69 } 70 catch (Exception e) 71 { 72 fail("Exception in getSimpleHome: " + e.getMessage()); 73 } 74 return null; 75 } 76 77 public void testOnLoad() throws Exception 78 { 79 SimpleHome simpleHome = getSimpleHome(); 80 Iterator simpleIter = simpleHome.findAll().iterator(); 81 Simple simple = (Simple) simpleIter.next(); 82 Object pk = simple.getPrimaryKey(); 83 ReadAheadCache cache = jdbcStoreManager.getReadAheadCache(); 84 ReadAheadCache.EntityReadAheadInfo info = cache.getEntityReadAheadInfo(pk); 85 assertEquals(pkList.subList(0, 4), info.getLoadKeys()); 86 87 for (int i = 0; i < 4; i++) 88 { 89 Object o = pkList.get(i); 90 assertNull(cache.getPreloadDataMap(o, false)); 91 } 92 93 simple.getStringValue(); 95 assertNull(cache.getPreloadDataMap("test0", false)); 96 for (int i = 1; i < 4; i++) 97 { 98 Object o = pkList.get(i); 99 assertNotNull(cache.getPreloadDataMap(o, false)); 100 } 101 assertNull(cache.getPreloadDataMap("test4", false)); 102 103 simple = (Simple) simpleIter.next(); simple.getStringValue(); 105 assertNull(cache.getPreloadDataMap("test1", false)); 106 simple = (Simple) simpleIter.next(); simple.getStringValue(); 108 simple = (Simple) simpleIter.next(); simple.getStringValue(); 110 for (int i = 0; i < 4; i++) 111 { 112 Object o = pkList.get(i); 113 assertNull(cache.getPreloadDataMap(o, false)); 114 } 115 116 simple = (Simple) simpleIter.next(); simple.getStringValue(); 118 for (int i = 5; i < 8; i++) 119 { 120 Object o = pkList.get(i); 121 assertNotNull(cache.getPreloadDataMap(o, false)); 122 } 123 } 124 125 public void setUpEJB(Properties props) throws Exception 126 { 127 super.setUpEJB(props); 128 SimpleHome simpleHome = getSimpleHome(); 129 pkList = new ArrayList (); 130 131 for (int i = 0; i < 10; i++) 132 { 133 Simple simple = simpleHome.create("test" + i); 134 pkList.add(simple.getPrimaryKey()); 135 simple.setIntegerPrimitive(i); 136 } 137 138 MBeanServer server = (MBeanServer ) MBeanServerFactory.findMBeanServer(null).get(0); 139 ObjectName name = new ObjectName ("jboss.j2ee:jndiName=cmp2/simple/Simple,service=EJB"); 140 MBeanRegistry registry = (MBeanRegistry) MBeanProxyExt.create(MBeanRegistry.class, ServerConstants.MBEAN_REGISTRY, server); 141 MBeanEntry entry = registry.get(name); 142 EntityContainer container = (EntityContainer) entry.getResourceInstance(); 143 Catalog catalog = (Catalog) container.getEjbModule().getModuleData("CATALOG"); 144 JDBCEntityBridge bridge = (JDBCEntityBridge) catalog.getEntityByEJBName("SimpleEJB"); 145 jdbcStoreManager = (JDBCStoreManager)bridge.getManager(); 146 } 147 148 public void tearDownEJB(Properties props) throws Exception 149 { 150 SimpleHome simpleHome = getSimpleHome(); 151 Collection c = simpleHome.findAll(); 152 for (Iterator iterator = c.iterator(); iterator.hasNext();) 153 { 154 Simple simple = (Simple) iterator.next(); 155 simple.remove(); 156 } 157 super.tearDownEJB(props); 158 } 159 } 160 161 | Popular Tags |