You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2015/07/28 14:55:38 UTC
[41/50] zest-java git commit: entity store with enabled cache test
case
entity store with enabled cache test case
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/5378de50
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/5378de50
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/5378de50
Branch: refs/heads/master
Commit: 5378de507b811bd59cdca069e11f6651a970ae1f
Parents: 2982826
Author: tbml <ti...@adleritech.com>
Authored: Thu Jul 23 18:05:40 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:01 2015 +0200
----------------------------------------------------------------------
.../helpers/JSONMapEntityStoreMixin.java | 3 +-
.../qi4j/cache/ehcache/JSONEntityStoreTest.java | 112 +++++++++++++++++++
2 files changed, 114 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/5378de50/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java b/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
index 47bf17f..cac8ec9 100644
--- a/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
+++ b/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
@@ -479,7 +479,8 @@ public class JSONMapEntityStoreMixin
{
String type = data.getString( JSONKeys.TYPE );
EntityDescriptor entityDescriptor = module.entityDescriptor( type );
- return new JSONEntityState( currentTime, valueSerialization, identity, entityDescriptor, data );
+// return new JSONEntityState( currentTime, valueSerialization, identity, entityDescriptor, data );
+ return new JSONEntityState( valueSerialization, data.getString( JSONKeys.VERSION ), data.getLong( JSONKeys.MODIFIED ), identity, EntityStatus.LOADED, entityDescriptor, data );
}
catch( JSONException e )
{
http://git-wip-us.apache.org/repos/asf/zest-java/blob/5378de50/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
new file mode 100644
index 0000000..13670c2
--- /dev/null
+++ b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
@@ -0,0 +1,112 @@
+package org.qi4j.cache.ehcache;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.entity.EntityBuilder;
+import org.qi4j.api.entity.EntityComposite;
+import org.qi4j.api.property.Property;
+import org.qi4j.api.unitofwork.UnitOfWork;
+import org.qi4j.api.value.ValueSerialization;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.bootstrap.SingletonAssembler;
+import org.qi4j.entitystore.memory.MemoryEntityStoreService;
+import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
+
+import java.math.BigDecimal;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ *
+ */
+public class JSONEntityStoreTest
+{
+
+ private static SingletonAssembler assembler;
+
+ @BeforeClass
+ public static void setup()
+ throws Exception
+ {
+ assembler = new SingletonAssembler()
+ {
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ module.entities(
+ Account.class
+ );
+
+ ModuleAssembly cacheCfgModule = module.layer().application().layer("configLayer").module( "configModule" );
+
+ cacheCfgModule.services( MemoryEntityStoreService.class )
+ .instantiateOnStartup()
+ .visibleIn(Visibility.module);
+
+ cacheCfgModule.services( UuidIdentityGeneratorService.class ).visibleIn( Visibility.module );
+ cacheCfgModule.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+ cacheCfgModule.entities( EhCacheConfiguration.class).visibleIn(Visibility.application);
+
+ module.layer().uses( cacheCfgModule.layer() );
+
+ module.services( EhCachePoolService.class)
+ .visibleIn(Visibility.module)
+ .identifiedBy("ehcache");
+
+
+ new EntityTestAssembler()
+ .visibleIn( Visibility.module)
+ .assemble( module);
+
+ }
+ };
+
+ }
+
+ @Test
+ public void cacheJSONGlobalStateTest()
+ throws Exception
+ {
+
+ UnitOfWork uow1 = assembler.module().newUnitOfWork();
+ EntityBuilder<Account> b = uow1.newEntityBuilder(Account.class);
+
+ b.instance().name().set("account1");
+ b.instance().balance().set( BigDecimal.ZERO );
+
+ Account account1 = b.newInstance();
+
+ uow1.complete();
+
+ UnitOfWork uow2 = assembler.module().newUnitOfWork();
+ Account account2 = uow2.get(account1);
+ account2.balance().set( BigDecimal.ONE);
+ uow2.complete();
+
+ UnitOfWork uow3 = assembler.module().newUnitOfWork();
+ Account account3 = uow3.get(account1);
+ account3.balance().set( BigDecimal.TEN);
+ uow3.discard();
+
+ UnitOfWork uow4 = assembler.module().newUnitOfWork();
+ Account account4 = uow4.get(account1);
+
+ assertEquals( BigDecimal.ONE, account4.balance().get());
+
+ uow4.discard();
+ }
+
+ public interface Account
+ extends EntityComposite
+ {
+
+ Property<String> name();
+
+ Property<BigDecimal> balance();
+ }
+
+}