KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > spring > integrationtests > tests > MultipleBeanDefsTest


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tctest.spring.integrationtests.tests;
5
6 import com.tctest.spring.bean.IMasterBean;
7 import com.tctest.spring.integrationtests.framework.AbstractTwoServerDeploymentTest;
8 import com.tctest.spring.integrationtests.framework.DeploymentBuilder;
9
10 import java.util.List JavaDoc;
11
12 import junit.extensions.TestSetup;
13 import junit.framework.Test;
14
15 /**
16  * This is really testing a single WebApplicationContext with multiple bean definition files
17  * Testing the following features
18  * 1. proxy is correctly invoked
19  * 2. The shared bean is cached in the mixin cache
20  *
21  * @author Liyu Yi
22  */

23 public class MultipleBeanDefsTest extends AbstractTwoServerDeploymentTest {
24
25   private static final String JavaDoc REMOTE_SERVICE_NAME = "MasterService";
26   private static final String JavaDoc BEAN_DEFINITION_FILE_FOR_TEST = "classpath:/com/tctest/spring/beanfactory.xml \n classpath:/com/tctest/spring/beanfactory-master.xml";
27   private static final String JavaDoc CONFIG_FILE_FOR_TEST = "/tc-config-files/multibeandef-tc-config.xml";
28
29   private static IMasterBean masterBean1;
30   private static IMasterBean masterBean2;
31
32   /**
33    * Test regular shared bean behavior
34    */

35   public void testBeanFromMultipleContexts() throws Exception JavaDoc {
36     List JavaDoc values1 = masterBean1.getValues();
37     List JavaDoc values2 = masterBean2.getValues();
38     
39     assertEquals("Pre-condition checking failed" + values1, 0, values1.size());
40     assertEquals("Pre-condition checking failed" + values2, 0, values2.size());
41     
42     masterBean1.addValue("masterBean1");
43     masterBean2.addValue("masterBean2");
44
45     values1 = masterBean1.getValues();
46     values2 = masterBean2.getValues();
47
48     assertEquals("Not shared correctly" + values1, 2, values1.size());
49     assertEquals("Not shared correctly" + values2, 2, values2.size());
50     
51     assertTrue(values1.contains("masterBean1"));
52     assertTrue(values1.contains("masterBean2"));
53     assertTrue(values2.contains("masterBean1"));
54     assertTrue(values2.contains("masterBean2"));
55   }
56
57   /**
58    *
59    */

60   public void testUsingSharedBeanReferenceAcrossCluster() throws Exception JavaDoc {
61     assertTrue("After a round trip, failed the check for ==", masterBean1.isTheSameSingletonReferenceUsed());
62     assertTrue("After a round trip, failed the check for ==", masterBean2.isTheSameSingletonReferenceUsed());
63   }
64
65   private static class MultipleBeanDefsTestSetup extends TwoSvrSetup {
66
67     private MultipleBeanDefsTestSetup() {
68       super(MultipleBeanDefsTest.class, CONFIG_FILE_FOR_TEST, "test-multibeandef");
69     }
70
71     protected void setUp() throws Exception JavaDoc {
72       super.setUp();
73       masterBean1 = (IMasterBean) server1.getProxy(IMasterBean.class, REMOTE_SERVICE_NAME);
74       masterBean2 = (IMasterBean) server2.getProxy(IMasterBean.class, REMOTE_SERVICE_NAME);
75     }
76
77     protected void configureWar(DeploymentBuilder builder) {
78       builder.addBeanDefinitionFile(BEAN_DEFINITION_FILE_FOR_TEST);
79       builder.addRemoteService(REMOTE_SERVICE_NAME, "distributedMasterBean", IMasterBean.class);
80     }
81   }
82
83   /**
84    * JUnit test loader entry point
85    */

86   public static Test suite() {
87     TestSetup setup = new MultipleBeanDefsTestSetup();
88     return setup;
89   }
90
91 }
92
Popular Tags