/* * Title: Short descriptive title Description: A broad description of the * intention Copyright 2005 GigaSpaces Technologies Ltd. All rights reserved. * THIS SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. GIGASPACES WILL NOT BE * LIABLE FOR ANY DAMAGE OR LOSS IN CONNECTION WITH THE SOFTWARE. */ package org.springmodules.javaspaces.gigaspaces; import java.rmi.RemoteException; import java.util.Random; import net.jini.core.event.RemoteEvent; import net.jini.core.event.RemoteEventListener; import net.jini.core.event.UnknownEventException; import net.jini.core.lease.Lease; import org.springframework.test.AbstractDependencyInjectionSpringContextTests; import org.springmodules.javaspaces.gigaspaces.GigaSpacesTemplate; import org.springmodules.javaspaces.gigaspaces.app.SimpleBean; import com.j_spaces.core.client.ExternalEntry; import com.j_spaces.core.client.UpdateModifiers; public class GigaSpacesTemplateTest extends AbstractDependencyInjectionSpringContextTests { GigaSpacesTemplate template = null; protected String[] getConfigLocations() { return new String[] { "/config/simple.xml","/config/common.xml" }; } protected void onSetUp() throws Exception { template = (GigaSpacesTemplate) applicationContext.getBean("gigaSpacesTemplate"); } public void testWrite() throws Exception { SimpleBean bean = new SimpleBean("ddd", 2); bean.setTestboolean(true); bean.setTestBooleanObject(new Boolean(true)); template.write(bean, -1); SimpleBean template1 = new SimpleBean(null, 2); template1.setTestboolean(true); SimpleBean taken = (SimpleBean) template.take(template1, -1); assertEquals("written object is not equal to taken one!", bean, taken); } public void testTake() throws Exception { template.clean(); SimpleBean bean = new SimpleBean("dddd", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean(null, 1); SimpleBean taken = (SimpleBean) template.take(/*bean*/templateBean, -1); assertNotNull("Taken object is null!", taken); } public void testTakeIfExist() throws Exception { SimpleBean bean = new SimpleBean("lior_IfExists", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean("lior_IfExists", 1); SimpleBean taken = (SimpleBean) template.takeIfExists(/*bean*/templateBean, -1); assertNotNull("Taken object is null!", taken); } public void testTakeWithTransaction() throws Throwable { SimpleBean bean = new SimpleBean("lior_TakeWithTransaction", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean( "lior_TakeWithTransaction", 1); SimpleBean taken = (SimpleBean) template.take(/*bean*/ templateBean, Lease.ANY); assertNotNull("Taken object is null!", taken); } public void testTakeIfExistWithTransaction() throws Throwable { SimpleBean bean = new SimpleBean("lior_IfExistsTakeWithTransaction", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean( "lior_IfExistsTakeWithTransaction", 1); SimpleBean taken = (SimpleBean) template.takeIfExists( templateBean/*bean*/, 2000); assertNotNull("Taken object is null!", taken); } public void testSnapshot() { SimpleBean templateBean = new SimpleBean("lior_Snapshot", 1); ExternalEntry taken = (ExternalEntry) template.snapshot(templateBean); assertNotNull("Taken object is null!", taken); } public void testCount() throws Exception { Random rn = new Random(); String bean_name = "lior_count" + rn.nextInt(); SimpleBean bean = new SimpleBean(bean_name, 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean(bean_name, 1); int count = (int) template.count(templateBean); assertEquals("The count is not 1!", 1, count); } public void testClear() throws Exception { SimpleBean bean = new SimpleBean("lior_clear", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean("lior_clear", 1); template.clear(templateBean); SimpleBean taken = null; try { //throw exception if there is pk decleration taken = (SimpleBean) template.takeIfExists(templateBean, -1); } catch (Exception e) { // TODO: handle exception } assertNull("The bean is not been clear!", taken); } public void testClean() throws Exception { SimpleBean bean = new SimpleBean("lior_clean", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean("lior_clean", 1); template.clean(); SimpleBean taken = null; try { //throw exception if there is pk decleration taken = (SimpleBean) template.takeIfExists(templateBean, -1); } catch (Exception e) { // TODO: handle exception } assertNull("The bean is not been clean!", taken); } public void testName() { String name = (String) template.getName(); assertEquals("The name of the cache is not myCache!", "myCache", name); } public void testAdmin() { Object admin = (Object) template.getAdmin(); assertNotNull("The admin is null!", admin); } public void testWriteMultiple() throws Throwable { SimpleBean bean1 = new SimpleBean("lior_multi1", 1); SimpleBean bean2 = new SimpleBean("lior_multi2", 1); template.writeMultiple(new Object[] { bean1, bean2 }, -1); SimpleBean templateBean = new SimpleBean("lior_multi1", 1); SimpleBean taken = (SimpleBean) template.take(/*bean1*/templateBean, -1); assertEquals("The bean are not equals!", bean1, taken); } public void testReadMultiple() throws Throwable { template.clean(); SimpleBean bean1 = new SimpleBean("lior_read2", 1); SimpleBean bean2 = new SimpleBean("lior_read1", 1); template.writeMultiple(new Object[] { bean1, bean2 }, -1); SimpleBean templateBean = new SimpleBean(null, 1); Object[] taken = template.readMultiple(templateBean, 2); assertEquals("The bean are null!", 2, taken.length); } public void testTakeMultiple() throws Throwable { SimpleBean bean1 = new SimpleBean("lior_take1", 1); SimpleBean bean2 = new SimpleBean("lior_take2", 1); template.writeMultiple(new Object[] { bean1, bean2 }, -1); SimpleBean templateBean = new SimpleBean(null, 1); Object[] taken = template.takeMultiple(templateBean, 2); assertEquals("The bean are null!", 2, taken.length); } public void testPing() throws Exception { template.ping(); assertTrue("The ping is null!", true); } /* public void testReplace() throws Throwable { SimpleBean bean1 = new SimpleBean("lior_Replace1", 1); SimpleBean bean2 = new SimpleBean("lior_Replace2", 1); template.write(bean1, Lease.FOREVER); //SimpleBean templateBean = new SimpleBean("lior_Replace1", 1); Object[] taken = template.replace(bean1, bean2, Lease.FOREVER); assertEquals("The bean are null!", 2, taken.length); } */ public void testUpdate() throws Throwable { template.clean(); SimpleBean bean = new SimpleBean("lior_Update1", 1); template.write(bean, Lease.FOREVER); SimpleBean templateBean = new SimpleBean("lior_Update1", 2); SimpleBean taken = (SimpleBean) template.update(templateBean/*bean*/, Lease.FOREVER, Lease.FOREVER); assertNotSame("The bean are equal!", templateBean, taken); } public void testUpdateModifier() throws Throwable { template.clean(); SimpleBean bean = new SimpleBean("lior_UpdateModifier2", 1); template.write(bean, Lease.FOREVER); SimpleBean templateBean = new SimpleBean("lior_UpdateModifier2", 2); SimpleBean taken = (SimpleBean) template.update(templateBean, Lease.FOREVER, Lease.FOREVER, UpdateModifiers.UPDATE_OR_WRITE); assertNotSame("The bean are equal!", templateBean, taken); } public void testUpdateMultiple() throws Throwable { template.clean(); SimpleBean bean1 = new SimpleBean("lior_Update1", 1); SimpleBean bean2 = new SimpleBean("lior_Update2", 1); template.write(bean1, Lease.FOREVER); template.write(bean2, Lease.FOREVER); bean1.setAge(3); bean2.setAge(3); SimpleBean templateBean1 = new SimpleBean("lior_Update1", 2); SimpleBean templateBean2 = new SimpleBean("lior_Update2", 3); Object[] list = template.updateMultiple(new SimpleBean[] { templateBean1, templateBean2/*bean1,bean2 */}, new long[] { Lease.FOREVER, Lease.FOREVER }); assertEquals("The bean are equal!", 2, list.length); } public void testUpdateMultipleModifier() throws Throwable { template.clean(); SimpleBean bean1 = new SimpleBean("lior_Update1", 1); SimpleBean bean2 = new SimpleBean("lior_Update2", 1); template.write(bean1, Lease.FOREVER); template.write(bean2, Lease.FOREVER); SimpleBean templateBean1 = new SimpleBean("lior_Update1", 2); SimpleBean templateBean2 = new SimpleBean("lior_Update2", 3); Object[] taken = template.updateMultiple(new SimpleBean[] {templateBean1, templateBean2/*bean1,bean2*/ }, new long[] { Lease.FOREVER, Lease.FOREVER }, UpdateModifiers.UPDATE_ONLY); assertEquals("The bean are equal!", 2, taken.length); } public void testIsSecured() { boolean isSec = template.isSecured(); assertNotNull("The isSecured is null!", new Boolean(isSec)); } public void testDropClass() throws Throwable { SimpleBean bean1 = new SimpleBean("lior_dropClass", 1); template.write(bean1, Lease.FOREVER); template.dropClass(SimpleBean.class.getName()); SimpleBean taken = (SimpleBean) template.takeIfExists(bean1, 1000); assertNull("The dropClass is not null!", taken); } public void testIsEmbedded() throws Throwable { boolean isEmbedded = template.isEmbedded(); assertTrue("The isEmbedded is true!", isEmbedded); } public void testSetOptimisticLocking() { template.setOptimisticLocking(true); assertTrue("The testSetOptimisticLocking is true!", true); } public void testIsOptimisticLocking() { template.setOptimisticLocking(true); boolean ise = template.isOptimisticLockingEnabled(); assertTrue("The testIsOptimisticLocking is false!", ise); } public void testSetFifo() { template.setFifo(true); assertTrue("The testSetFifo is true!", true); } public void testIsFifo() { template.setFifo(false); boolean ise = template.isFifo(); assertFalse("The testIsFifo is true!", ise); } public void testSetNOWriteLeaseMode() { template.setNOWriteLeaseMode(true); assertTrue("The testSetNOWriteLeaseMode is true!", true); } public void testIsNOWriteLeaseMode() { template.setNOWriteLeaseMode(true); boolean ise = template.isNOWriteLeaseMode(); assertTrue("The testisNOWriteLeaseMode is false!", ise); } public void testRead() throws Throwable { SimpleBean bean = new SimpleBean("lior_Read", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean("lior_Read", 1); SimpleBean taken = (SimpleBean) template.read( templateBean/*bean*/, Lease.ANY); assertNotNull("Read object is null!", taken); } public void testReadIfExist() throws Throwable { SimpleBean bean = new SimpleBean("lior_ReadIfExists", 1); template.write(bean, -1); SimpleBean templateBean = new SimpleBean("lior_ReadIfExists", 1); SimpleBean taken = (SimpleBean) template.readIfExists( templateBean/*bean*/, 2000); assertNotNull("Read object is null!", taken); } public void testNotify() throws Throwable { SimpleBean bean = new SimpleBean("lior_AddListener", 1); final SimpleBean templateBean = new SimpleBean("lior_AddListener", 1); RemoteEventListener listener = new RemoteEventListener(){ public void notify(RemoteEvent remoteevent) throws UnknownEventException, RemoteException{ assertNotNull("is null",remoteevent); } }; template.notify(templateBean, listener, Lease.FOREVER, null, null); template.write(bean, -1); } public void testSetUpdateModifiers() { template.setUpdateModifiers(UpdateModifiers.UPDATE_ONLY); assertTrue("The testSetUpdateModifiers is true!", true); } public void testGetUpdateModifiers() { template.setUpdateModifiers(UpdateModifiers.UPDATE_ONLY); int ise = template.getUpdateModifiers(); assertEquals( "The testgetUpdateModifiers is false!", UpdateModifiers.UPDATE_ONLY, ise); } public void testSetReadTakeModifiers() { template.setReadTakeModifiers(UpdateModifiers.UPDATE_ONLY); assertTrue("The testSetReadTakeModifiersis true!", true); } public void testGetReadTakeModifiers() { template.setReadTakeModifiers(UpdateModifiers.UPDATE_ONLY); int ise = template.getReadTakeModifiers(); assertEquals( "The testgetReadTakeModifiers is false!", UpdateModifiers.UPDATE_ONLY, ise); } }