You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/06/10 01:58:03 UTC
[05/14] zest-qi4j git commit: OrgJson Serialization has a bug in the
handling of NamedAssociation. Adding test for that.
OrgJson Serialization has a bug in the handling of NamedAssociation. Adding test for that.
Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/15e1e722
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/15e1e722
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/15e1e722
Branch: refs/heads/develop
Commit: 15e1e72248c7a0b93e3ac5bbb1ba501576e69561
Parents: 29e605a
Author: Niclas Hedhman <ni...@hedhman.org>
Authored: Thu May 21 16:20:44 2015 +0800
Committer: Niclas Hedhman <ni...@hedhman.org>
Committed: Thu May 21 16:20:44 2015 +0800
----------------------------------------------------------------------
.../value/ValueSerializationRegressionTest.java | 58 ++++++++++++++++++++
.../runtime/value/ValueWithAssociationTest.java | 52 +++++++++++++++---
2 files changed, 102 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/15e1e722/core/runtime/src/test/java/org/qi4j/runtime/value/ValueSerializationRegressionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/qi4j/runtime/value/ValueSerializationRegressionTest.java b/core/runtime/src/test/java/org/qi4j/runtime/value/ValueSerializationRegressionTest.java
new file mode 100644
index 0000000..5761ff9
--- /dev/null
+++ b/core/runtime/src/test/java/org/qi4j/runtime/value/ValueSerializationRegressionTest.java
@@ -0,0 +1,58 @@
+package org.qi4j.runtime.value;
+
+import org.junit.Test;
+import org.qi4j.api.association.Association;
+import org.qi4j.api.association.ManyAssociation;
+import org.qi4j.api.association.NamedAssociation;
+import org.qi4j.api.entity.Identity;
+import org.qi4j.api.property.Property;
+import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
+import org.qi4j.api.value.ValueBuilder;
+import org.qi4j.api.value.ValueSerialization;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.memory.MemoryEntityStoreService;
+import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
+import org.qi4j.test.AbstractQi4jTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
+
+public class ValueSerializationRegressionTest extends AbstractQi4jTest
+{
+ @Override
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ module.entities( SimpleEntity.class );
+ module.entities( DualFaced.class );
+ module.values( DualFaced.class );
+ module.services( MemoryEntityStoreService.class );
+ module.services( UuidIdentityGeneratorService.class );
+ module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+ }
+
+ @Test
+ public void givenNewValueWhenConvertingToEntityExpectNewEntityInStore()
+ throws UnitOfWorkCompletionException
+ {
+ ValueBuilder<DualFaced> builder = module.newValueBuilder( DualFaced.class );
+ builder.prototype().identity().set( "1234" );
+ builder.prototype().name().set( "Hedhman" );
+ DualFaced value = builder.newInstance();
+ }
+
+ public interface SimpleEntity extends Identity
+ {
+ Property<String> name();
+ }
+
+ public interface DualFaced extends Identity
+ {
+ Property<String> name();
+
+ Association<SimpleEntity> simple();
+
+ ManyAssociation<SimpleEntity> simples();
+
+ NamedAssociation<SimpleEntity> namedSimples();
+ }
+}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/15e1e722/core/runtime/src/test/java/org/qi4j/runtime/value/ValueWithAssociationTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/qi4j/runtime/value/ValueWithAssociationTest.java b/core/runtime/src/test/java/org/qi4j/runtime/value/ValueWithAssociationTest.java
index 2f0fd2c..a7f88b3 100644
--- a/core/runtime/src/test/java/org/qi4j/runtime/value/ValueWithAssociationTest.java
+++ b/core/runtime/src/test/java/org/qi4j/runtime/value/ValueWithAssociationTest.java
@@ -31,7 +31,7 @@ public class ValueWithAssociationTest extends AbstractQi4jTest
public void assemble( ModuleAssembly module )
throws AssemblyException
{
- module.entities( SimpleEntity.class );
+ module.entities( SimpleName.class );
module.entities( DualFaced.class );
module.values( DualFaced.class );
module.services( MemoryEntityStoreService.class );
@@ -39,7 +39,7 @@ public class ValueWithAssociationTest extends AbstractQi4jTest
module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
}
- @Test @Ignore
+ @Test
public void givenEntityInStoreWhenFetchEntityReferenceExpectSuccess()
throws UnitOfWorkCompletionException
{
@@ -48,9 +48,9 @@ public class ValueWithAssociationTest extends AbstractQi4jTest
DualFaced value;
try (UnitOfWork uow = module.newUnitOfWork())
{
- EntityBuilder<SimpleEntity> builder1 = uow.newEntityBuilder( SimpleEntity.class );
+ EntityBuilder<SimpleName> builder1 = uow.newEntityBuilder( SimpleName.class );
builder1.instance().name().set( "Niclas" );
- SimpleEntity simpleEntity = builder1.newInstance();
+ SimpleName simpleEntity = builder1.newInstance();
identity1 = simpleEntity.identity().get();
EntityBuilder<DualFaced> builder2 = uow.newEntityBuilder( DualFaced.class );
@@ -114,7 +114,43 @@ public class ValueWithAssociationTest extends AbstractQi4jTest
}
}
- public interface SimpleEntity extends Identity
+ @Test
+ public void givenEntityInStoreWhenConvertingValueExpectEntityToBeUpdated()
+ throws UnitOfWorkCompletionException
+ {
+ String identity1;
+ String identity2;
+ DualFaced value;
+ try (UnitOfWork uow = module.newUnitOfWork())
+ {
+ EntityBuilder<SimpleName> builder1 = uow.newEntityBuilder( SimpleName.class );
+ builder1.instance().name().set( "Niclas" );
+ SimpleName simpleEntity = builder1.newInstance();
+ identity1 = simpleEntity.identity().get();
+
+ EntityBuilder<DualFaced> builder2 = uow.newEntityBuilder( DualFaced.class );
+ DualFaced proto = builder2.instance();
+ proto.name().set( "Hedhman" );
+ proto.simple().set( simpleEntity );
+ proto.simples().add( simpleEntity );
+ proto.namedSimples().put( "niclas", simpleEntity );
+ DualFaced entity = builder2.newInstance();
+ value = spi.toValue( DualFaced.class, entity );
+ uow.complete();
+ }
+
+ SimpleName simple = value.simple().get();
+
+// ValueBuilder<DualFaced> builder = module.newValueBuilder( DualFaced.class );
+// DualFaced prototype = builder.prototype();
+// prototype.name().set( "Paul" );
+// DualFaced value = builder.newInstance();
+// try (UnitOfWork uow = module.newUnitOfWork())
+// {
+// }
+ }
+
+ public interface SimpleName extends Identity
{
Property<String> name();
}
@@ -123,10 +159,10 @@ public class ValueWithAssociationTest extends AbstractQi4jTest
{
Property<String> name();
- Association<SimpleEntity> simple();
+ Association<SimpleName> simple();
- ManyAssociation<SimpleEntity> simples();
+ ManyAssociation<SimpleName> simples();
- NamedAssociation<SimpleEntity> namedSimples();
+ NamedAssociation<SimpleName> namedSimples();
}
}