KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > cmp2 > simple > PageSizeUnitTestCase


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.test.cmp2.simple;
23
24 import java.util.ArrayList JavaDoc;
25 import java.util.Collection JavaDoc;
26 import java.util.Iterator JavaDoc;
27 import java.util.List JavaDoc;
28 import java.util.Properties JavaDoc;
29 import javax.management.MBeanServer JavaDoc;
30 import javax.management.MBeanServerFactory JavaDoc;
31 import javax.management.ObjectName JavaDoc;
32 import javax.naming.InitialContext JavaDoc;
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 JavaDoc pkList;
51
52    public static Test suite() throws Exception JavaDoc
53    {
54       return JBossTestCase.getDeploySetup(
55             PageSizeUnitTestCase.class, "cmp2-simple.jar");
56    }
57
58    public PageSizeUnitTestCase(String JavaDoc name)
59    {
60       super(name);
61    }
62
63    private SimpleHome getSimpleHome()
64    {
65       try
66       {
67          InitialContext JavaDoc jndiContext = new InitialContext JavaDoc();
68          return (SimpleHome) jndiContext.lookup("cmp2/simple/Simple");
69       }
70       catch (Exception JavaDoc e)
71       {
72          fail("Exception in getSimpleHome: " + e.getMessage());
73       }
74       return null;
75    }
76
77    public void testOnLoad() throws Exception JavaDoc
78    {
79       SimpleHome simpleHome = getSimpleHome();
80       Iterator JavaDoc simpleIter = simpleHome.findAll().iterator();
81       Simple simple = (Simple) simpleIter.next();
82       Object JavaDoc 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 JavaDoc o = pkList.get(i);
90          assertNull(cache.getPreloadDataMap(o, false));
91       }
92
93       simple.getStringValue(); // test0
94

95       assertNull(cache.getPreloadDataMap("test0", false));
96       for (int i = 1; i < 4; i++)
97       {
98          Object JavaDoc o = pkList.get(i);
99          assertNotNull(cache.getPreloadDataMap(o, false));
100       }
101       assertNull(cache.getPreloadDataMap("test4", false));
102
103       simple = (Simple) simpleIter.next(); // test1
104
simple.getStringValue();
105       assertNull(cache.getPreloadDataMap("test1", false));
106       simple = (Simple) simpleIter.next(); // test2
107
simple.getStringValue();
108       simple = (Simple) simpleIter.next(); // test3
109
simple.getStringValue();
110       for (int i = 0; i < 4; i++)
111       {
112          Object JavaDoc o = pkList.get(i);
113          assertNull(cache.getPreloadDataMap(o, false));
114       }
115
116       simple = (Simple) simpleIter.next(); // test4
117
simple.getStringValue();
118       for (int i = 5; i < 8; i++)
119       {
120          Object JavaDoc o = pkList.get(i);
121          assertNotNull(cache.getPreloadDataMap(o, false));
122       }
123    }
124
125    public void setUpEJB(Properties JavaDoc props) throws Exception JavaDoc
126    {
127       super.setUpEJB(props);
128       SimpleHome simpleHome = getSimpleHome();
129       pkList = new ArrayList JavaDoc();
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 JavaDoc server = (MBeanServer JavaDoc) MBeanServerFactory.findMBeanServer(null).get(0);
139       ObjectName JavaDoc name = new ObjectName JavaDoc("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 JavaDoc props) throws Exception JavaDoc
149    {
150       SimpleHome simpleHome = getSimpleHome();
151       Collection JavaDoc c = simpleHome.findAll();
152       for (Iterator JavaDoc 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