Adding a new test suite for persistence, that is somewhat understandable and not totally non-sense. Also, it is a multi-layered application, to ensure that Type Lookups are handled correctly. JDBM was first victim to get this new tests.
Signed-off-by: niclas <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/df5fd8af Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/df5fd8af Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/df5fd8af Branch: refs/heads/develop Commit: df5fd8af1499e7b0d2531116bed03c8bd17f0c95 Parents: 24fe603 Author: niclas <[email protected]> Authored: Thu Jun 15 13:48:35 2017 +0800 Committer: niclas <[email protected]> Committed: Thu Jun 15 13:48:36 2017 +0800 ---------------------------------------------------------------------- .../polygene/api/entity/EntityReference.java | 2 +- .../polygene/api/identity/StringIdentity.java | 2 +- .../api/identity/UuidGeneratorMixin.java | 2 +- .../org/apache/polygene/api/OperatorsTest.java | 2 +- .../polygene/api/type/ValueTypeFactoryTest.java | 2 +- .../polygene/api/unitofwork/RemovalTest.java | 2 +- .../api/unitofwork/ToEntityConversionTest.java | 2 +- .../api/unitofwork/ToValueConversionTest.java | 12 +- .../association/NamedAssociationInstance.java | 9 +- .../bootstrap/ImportedServiceAssemblyImpl.java | 6 +- .../runtime/bootstrap/ModuleAssemblyImpl.java | 4 +- .../bootstrap/ServiceDeclarationImpl.java | 2 +- .../runtime/unitofwork/ModuleUnitOfWork.java | 2 +- .../apache/polygene/api/common/RemovalTest.java | 2 +- .../qi377/SetAssociationInSideEffectTest.java | 4 +- ...alueCollisionWithRelatedReturnTypesTest.java | 2 +- .../polygene/regression/qi382/Qi382Test.java | 4 +- .../polygene/regression/qi383/Qi383Test.java | 6 +- .../ImportedServiceActivationTest.java | 2 +- .../polygene/runtime/entity/EntityTypeTest.java | 6 +- .../runtime/entity/EntityVisibilityTest.java | 2 +- .../runtime/injection/ServiceInjectionTest.java | 2 +- .../injection/UnitOfWorkInjectionTest.java | 2 +- .../runtime/mixin/AssemblyMixinTest.java | 4 +- .../runtime/mixin/AssemblyRoleTest.java | 4 +- .../polygene/runtime/mixin/JDKMixinTest.java | 4 +- .../runtime/objects/ObjectVisibilityTest.java | 2 +- .../runtime/query/IterableQuerySourceTest.java | 2 +- .../apache/polygene/runtime/query/Network.java | 4 +- .../runtime/service/ServiceVisibilityTest.java | 2 +- .../transients/TransientVisibilityTest.java | 2 +- .../unitofwork/PrivateEntityUnitOfWorkTest.java | 2 +- .../runtime/unitofwork/RemovalTest.java | 2 +- .../runtime/value/AssociationToValueTest.java | 4 +- .../value/ValueSerializationRegressionTest.java | 2 +- .../runtime/value/ValueVisibilityTest.java | 2 +- .../runtime/value/ValueWithAssociationTest.java | 6 +- .../visibility/VisibilityInUnitOfWorkTest.java | 4 +- .../importer/ServiceInstanceImporterTest.java | 2 +- .../helpers/JSONMapEntityStoreMixin.java | 2 +- .../helpers/MapEntityStoreMixin.java | 2 +- .../spi/serialization/BuiltInConverters.java | 2 +- .../spi/entitystore/Polygene142Test.java | 2 +- .../test/entity/model/EntityStoreTestSuite.java | 546 +++++++++++++++++++ .../test/entity/model/legal/LegalService.java | 106 ++++ .../polygene/test/entity/model/legal/Will.java | 36 ++ .../test/entity/model/legal/WillAmount.java | 28 + .../test/entity/model/legal/WillBenefit.java | 36 ++ .../test/entity/model/legal/WillItem.java | 30 + .../test/entity/model/legal/WillPercentage.java | 27 + .../test/entity/model/people/Address.java | 37 ++ .../polygene/test/entity/model/people/City.java | 28 + .../test/entity/model/people/Country.java | 28 + .../entity/model/people/PeopleRepository.java | 183 +++++++ .../test/entity/model/people/Person.java | 89 +++ .../test/entity/model/people/PhoneNumber.java | 55 ++ .../polygene/test/entity/model/people/Rent.java | 48 ++ .../test/indexing/AbstractQueryTest.java | 6 +- .../apache/polygene/test/indexing/TestData.java | 8 +- .../metrics/AbstractPolygeneMetricsTest.java | 4 +- ...AbstractValueCompositeSerializationTest.java | 8 +- .../cassandra/CassandraEntityStoreMixin.java | 2 +- .../jdbm/JdbmEntityStoreTestSuite.java | 55 ++ .../AbstractSQLEntityStoreAssembler.java | 2 +- .../polygene/index/rdf/RDFPerformanceTest.java | 4 +- .../AbstractSQLIndexQueryAssembler.java | 2 +- .../polygene/library/alarm/AlarmSystem.java | 2 +- .../polygene/library/alarm/AlarmProxyTest.java | 4 +- .../jmx/ConfigurationManagerService.java | 2 +- .../rdf/entity/EntitySerializerTest.java | 4 +- .../rdf/entity/EntityTypeSerializerTest.java | 4 +- .../server/restlet/RequestReaderDelegator.java | 2 +- .../server/restlet/ResponseWriterDelegator.java | 2 +- .../requestreader/DefaultRequestReader.java | 4 +- .../library/rest/admin/EntityResource.java | 2 +- .../library/rest/admin/DummyDataService.java | 6 +- .../polygene/library/rest/admin/RestTest.java | 8 +- .../library/restlet/crud/EntityResource.java | 4 +- .../restlet/identity/IdentityManager.java | 4 +- .../restlet/resource/EntryPointResource.java | 6 +- .../restlet/resource/ResourceBuilder.java | 2 +- .../sql/assembly/DataSourceAssembler.java | 2 +- .../assembly/ExternalDataSourceAssembler.java | 2 +- .../DataSourceConfigurationManagerService.java | 2 +- .../moneytransfer/context/PayBillsContext.java | 4 +- .../moneytransfer/context/PayBillsContext2.java | 4 +- .../dci/moneytransfer/test/AccountIds.java | 8 +- .../sample/forum/data/entity/Forums.java | 2 +- .../sample/forum/data/entity/Users.java | 2 +- .../rest/resource/forum/BoardResource.java | 2 +- .../rest/resource/forum/ForumResource.java | 2 +- .../rest/resource/forum/ForumsResource.java | 2 +- .../sample/rental/domain/dev/InitialData.java | 2 +- .../polygene/sample/rental/web/BookingPage.java | 4 +- .../polygene/sample/rental/web/MainPage.java | 2 +- .../AbstractEntityStorePerformanceTest.java | 4 +- .../initialdata/SamplePersonInitialData.java | 2 +- .../polygene/tutorials/hello/HelloTest4.java | 2 +- 98 files changed, 1474 insertions(+), 135 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java b/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java index 9952994..68e2232 100644 --- a/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java +++ b/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java @@ -41,7 +41,7 @@ public final class EntityReference public static EntityReference parseEntityReference(String identityString) { Objects.requireNonNull( identityString, "identityString must not be null" ); - return new EntityReference( StringIdentity.fromString( identityString ) ); + return new EntityReference( StringIdentity.identity( identityString ) ); } /** http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/main/java/org/apache/polygene/api/identity/StringIdentity.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/identity/StringIdentity.java b/core/api/src/main/java/org/apache/polygene/api/identity/StringIdentity.java index 7d85381..3eba611 100644 --- a/core/api/src/main/java/org/apache/polygene/api/identity/StringIdentity.java +++ b/core/api/src/main/java/org/apache/polygene/api/identity/StringIdentity.java @@ -55,7 +55,7 @@ public class StringIdentity return value; } - public static Identity fromString(String serializedState) + public static Identity identity( String serializedState ) { return new StringIdentity( serializedState ); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/main/java/org/apache/polygene/api/identity/UuidGeneratorMixin.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/identity/UuidGeneratorMixin.java b/core/api/src/main/java/org/apache/polygene/api/identity/UuidGeneratorMixin.java index 0add4c6..6f85ca7 100644 --- a/core/api/src/main/java/org/apache/polygene/api/identity/UuidGeneratorMixin.java +++ b/core/api/src/main/java/org/apache/polygene/api/identity/UuidGeneratorMixin.java @@ -27,6 +27,6 @@ public class UuidGeneratorMixin @Override public Identity generate(Class<?> compositeType) { - return StringIdentity.fromString(UUID.randomUUID().toString()); + return StringIdentity.identity( UUID.randomUUID().toString() ); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/test/java/org/apache/polygene/api/OperatorsTest.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/OperatorsTest.java b/core/api/src/test/java/org/apache/polygene/api/OperatorsTest.java index 72f8c7f..f018907 100644 --- a/core/api/src/test/java/org/apache/polygene/api/OperatorsTest.java +++ b/core/api/src/test/java/org/apache/polygene/api/OperatorsTest.java @@ -63,7 +63,7 @@ public class OperatorsTest try { - EntityBuilder<TestEntity> entityBuilder = uow.newEntityBuilder( TestEntity.class, StringIdentity.fromString( "123" ) ); + EntityBuilder<TestEntity> entityBuilder = uow.newEntityBuilder( TestEntity.class, StringIdentity.identity( "123" ) ); entityBuilder.instance().value().set( assembler.module().newValue( TestValue.class ) ); TestEntity testEntity = entityBuilder.newInstance(); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/test/java/org/apache/polygene/api/type/ValueTypeFactoryTest.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/type/ValueTypeFactoryTest.java b/core/api/src/test/java/org/apache/polygene/api/type/ValueTypeFactoryTest.java index bd9ce3b..48ac6a5 100644 --- a/core/api/src/test/java/org/apache/polygene/api/type/ValueTypeFactoryTest.java +++ b/core/api/src/test/java/org/apache/polygene/api/type/ValueTypeFactoryTest.java @@ -125,7 +125,7 @@ public class ValueTypeFactoryTest extends AbstractPolygeneTest try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork() ) { assertThat( - valueTypeFactory.valueTypeOf( module, uow.newEntity( SomeState.class, StringIdentity.fromString( "abc" ) ) ), + valueTypeFactory.valueTypeOf( module, uow.newEntity( SomeState.class, StringIdentity.identity( "abc" ) ) ), instanceOf( EntityCompositeType.class ) ); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/test/java/org/apache/polygene/api/unitofwork/RemovalTest.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/unitofwork/RemovalTest.java b/core/api/src/test/java/org/apache/polygene/api/unitofwork/RemovalTest.java index 97b78db..f3a01d9 100644 --- a/core/api/src/test/java/org/apache/polygene/api/unitofwork/RemovalTest.java +++ b/core/api/src/test/java/org/apache/polygene/api/unitofwork/RemovalTest.java @@ -49,7 +49,7 @@ public class RemovalTest UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); try { - EntityBuilder<TestEntity> builder = uow.newEntityBuilder( TestEntity.class, StringIdentity.fromString( "123" ) ); + EntityBuilder<TestEntity> builder = uow.newEntityBuilder( TestEntity.class, StringIdentity.identity( "123" ) ); builder.instance().test().set( "habba" ); TestEntity test = builder.newInstance(); uow.remove( test ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToEntityConversionTest.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToEntityConversionTest.java b/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToEntityConversionTest.java index 055a1db..86ac547 100644 --- a/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToEntityConversionTest.java +++ b/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToEntityConversionTest.java @@ -65,7 +65,7 @@ public class ToEntityConversionTest public void testPropertyConversionToEntity() throws Exception { - Identity identity = StringIdentity.fromString( "Niclas" ); + Identity identity = StringIdentity.identity( "Niclas" ); ValueBuilder<SomeType> vb = valueBuilderFactory.newValueBuilder( SomeType.class ); SomeType prototype = vb.prototype(); prototype.identity().set( identity ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToValueConversionTest.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToValueConversionTest.java b/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToValueConversionTest.java index ae9c7c2..910cf72 100644 --- a/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToValueConversionTest.java +++ b/core/api/src/test/java/org/apache/polygene/api/unitofwork/ToValueConversionTest.java @@ -73,11 +73,11 @@ public class ToValueConversionTest SomeType value; try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(usecase) ) { - SomeType entity1 = createEntity( uow, StringIdentity.fromString( "Niclas" ) ); - SomeType entity2 = createEntity( uow, StringIdentity.fromString( "Paul" ) ); - SomeType entity3 = createEntity( uow, StringIdentity.fromString( "Jiri" ) ); - SomeType entity4 = createEntity( uow, StringIdentity.fromString( "Kent" ) ); - SomeType entity5 = createEntity( uow, StringIdentity.fromString( "Stan" ) ); + SomeType entity1 = createEntity( uow, StringIdentity.identity( "Niclas" ) ); + SomeType entity2 = createEntity( uow, StringIdentity.identity( "Paul" ) ); + SomeType entity3 = createEntity( uow, StringIdentity.identity( "Jiri" ) ); + SomeType entity4 = createEntity( uow, StringIdentity.identity( "Kent" ) ); + SomeType entity5 = createEntity( uow, StringIdentity.identity( "Stan" ) ); entity1.assoc().set( entity2 ); entity1.many().add( entity3 ); entity1.named().put( "kent", entity4 ); @@ -89,7 +89,7 @@ public class ToValueConversionTest } try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(usecase) ) { - assertThat( value.identity().get(), equalTo( StringIdentity.fromString( "Niclas" ) ) ); + assertThat( value.identity().get(), equalTo( StringIdentity.identity( "Niclas" ) ) ); assertThat( value.name().get(), equalTo( "[Niclas]" ) ); assertThat( uow.toValue( SomeType.class, value.assoc().get()).name().get(), equalTo( "[Paul]" )); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/main/java/org/apache/polygene/runtime/association/NamedAssociationInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/association/NamedAssociationInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/association/NamedAssociationInstance.java index e855c57..fffc760 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/association/NamedAssociationInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/association/NamedAssociationInstance.java @@ -74,7 +74,14 @@ public class NamedAssociationInstance<T> extends AbstractAssociationInstance<T> { Objects.requireNonNull( entity, "entity" ); checkImmutable(); - checkType( entity ); + try + { + checkType( entity ); + } + catch( IllegalArgumentException e ) + { + throw new IllegalArgumentException( "Named association [" + name +"] must have Identity: " + entity ); + } associationInfo.checkConstraints( entity ); return namedAssociationState.put( name, EntityReference.create( ( (HasIdentity) entity ).identity().get() ) ); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ImportedServiceAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ImportedServiceAssemblyImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ImportedServiceAssemblyImpl.java index 2c7905b..614df0b 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ImportedServiceAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ImportedServiceAssemblyImpl.java @@ -78,7 +78,7 @@ public final class ImportedServiceAssemblyImpl } else { - id = StringIdentity.fromString( identity ); + id = StringIdentity.identity( identity ); } ImportedServiceModel serviceModel = new ImportedServiceModel( module, @@ -103,7 +103,7 @@ public final class ImportedServiceAssemblyImpl { // Find reference that is not yet used int idx = 0; - Identity id = StringIdentity.fromString( serviceType.getSimpleName() ); + Identity id = StringIdentity.identity( serviceType.getSimpleName() ); boolean invalid; do { @@ -113,7 +113,7 @@ public final class ImportedServiceAssemblyImpl if( serviceModel.identity().equals( id ) ) { idx++; - id = StringIdentity.fromString( serviceType.getSimpleName() + "_" + idx ); + id = StringIdentity.identity( serviceType.getSimpleName() + "_" + idx ); invalid = true; break; } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ModuleAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ModuleAssemblyImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ModuleAssemblyImpl.java index f69fe9f..225857d 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ModuleAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ModuleAssemblyImpl.java @@ -708,7 +708,7 @@ final class ModuleAssemblyImpl Class<?> serviceType = serviceTypes.findFirst() .orElse(null); // Use the first, which *SHOULD* be the main serviceType int idx = 0; - Identity id = StringIdentity.fromString(serviceType.getSimpleName()); + Identity id = StringIdentity.identity( serviceType.getSimpleName() ); boolean invalid; do { @@ -718,7 +718,7 @@ final class ModuleAssemblyImpl if (serviceAssembly.identity() != null && serviceAssembly.identity().equals(id)) { idx++; - id = StringIdentity.fromString(serviceType.getSimpleName() + "_" + idx); + id = StringIdentity.identity( serviceType.getSimpleName() + "_" + idx ); invalid = true; break; } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ServiceDeclarationImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ServiceDeclarationImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ServiceDeclarationImpl.java index e5e17bb..92db867 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ServiceDeclarationImpl.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/ServiceDeclarationImpl.java @@ -59,7 +59,7 @@ public final class ServiceDeclarationImpl for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies ) { if( identity != null ) { - serviceAssembly.identity = StringIdentity.fromString( identity ); + serviceAssembly.identity = StringIdentity.identity( identity ); } } return this; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java b/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java index b836f67..071d2c3 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java @@ -264,7 +264,7 @@ public class ModuleUnitOfWork } else { - identity = StringIdentity.fromString( propertyState ); + identity = StringIdentity.identity( propertyState ); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/api/common/RemovalTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/api/common/RemovalTest.java b/core/runtime/src/test/java/org/apache/polygene/api/common/RemovalTest.java index 0c67baa..6c514c9 100644 --- a/core/runtime/src/test/java/org/apache/polygene/api/common/RemovalTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/api/common/RemovalTest.java @@ -48,7 +48,7 @@ public class RemovalTest throws Exception { UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - EntityBuilder<TestEntity> builder = uow.newEntityBuilder( TestEntity.class, StringIdentity.fromString( "123" ) ); + EntityBuilder<TestEntity> builder = uow.newEntityBuilder( TestEntity.class, StringIdentity.identity( "123" ) ); builder.instance().test().set( "habba" ); TestEntity test = builder.newInstance(); uow.remove( test ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/regression/qi377/SetAssociationInSideEffectTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/regression/qi377/SetAssociationInSideEffectTest.java b/core/runtime/src/test/java/org/apache/polygene/regression/qi377/SetAssociationInSideEffectTest.java index 941099b..84b6aed 100644 --- a/core/runtime/src/test/java/org/apache/polygene/regression/qi377/SetAssociationInSideEffectTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/regression/qi377/SetAssociationInSideEffectTest.java @@ -61,8 +61,8 @@ public class SetAssociationInSideEffectTest { try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( UsecaseBuilder.newUsecase( "Purchase Steinway" ) ) ) { - Pianist chris = uow.newEntity( Pianist.class, StringIdentity.fromString( "Chris" ) ); - Steinway modelD = uow.newEntity( Steinway.class, StringIdentity.fromString( "ModelD-274" ) ); + Pianist chris = uow.newEntity( Pianist.class, StringIdentity.identity( "Chris" ) ); + Steinway modelD = uow.newEntity( Steinway.class, StringIdentity.identity( "ModelD-274" ) ); assertThat( modelD.owner().get(), is( nullValue() ) ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/regression/qi377/ValueCollisionWithRelatedReturnTypesTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/regression/qi377/ValueCollisionWithRelatedReturnTypesTest.java b/core/runtime/src/test/java/org/apache/polygene/regression/qi377/ValueCollisionWithRelatedReturnTypesTest.java index 5e49acf..45e8658 100644 --- a/core/runtime/src/test/java/org/apache/polygene/regression/qi377/ValueCollisionWithRelatedReturnTypesTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/regression/qi377/ValueCollisionWithRelatedReturnTypesTest.java @@ -36,7 +36,7 @@ public class ValueCollisionWithRelatedReturnTypesTest extends AbstractPolygeneTest { - public static final Identity NICLAS = StringIdentity.fromString( "niclas" ); + public static final Identity NICLAS = StringIdentity.identity( "niclas" ); @Override public void assemble( ModuleAssembly module ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/regression/qi382/Qi382Test.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/regression/qi382/Qi382Test.java b/core/runtime/src/test/java/org/apache/polygene/regression/qi382/Qi382Test.java index dd818f9..140fd9d 100644 --- a/core/runtime/src/test/java/org/apache/polygene/regression/qi382/Qi382Test.java +++ b/core/runtime/src/test/java/org/apache/polygene/regression/qi382/Qi382Test.java @@ -44,8 +44,8 @@ import static org.junit.Assert.assertThat; public class Qi382Test extends AbstractPolygeneTest { - public static final Identity FERRARI = StringIdentity.fromString( "Ferrari" ); - public static final Identity NICLAS = StringIdentity.fromString( "Niclas" ); + public static final Identity FERRARI = StringIdentity.identity( "Ferrari" ); + public static final Identity NICLAS = StringIdentity.identity( "Niclas" ); @Override public void assemble( ModuleAssembly module ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/regression/qi383/Qi383Test.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/regression/qi383/Qi383Test.java b/core/runtime/src/test/java/org/apache/polygene/regression/qi383/Qi383Test.java index ea15a4f..96f0cad 100644 --- a/core/runtime/src/test/java/org/apache/polygene/regression/qi383/Qi383Test.java +++ b/core/runtime/src/test/java/org/apache/polygene/regression/qi383/Qi383Test.java @@ -47,9 +47,9 @@ public class Qi383Test extends AbstractPolygeneTest { try( UnitOfWork unitOfWork = unitOfWorkFactory.newUnitOfWork() ) { - unitOfWork.newEntity( Car.class, StringIdentity.fromString( "Ferrari" ) ); - unitOfWork.newEntity( Car.class, StringIdentity.fromString( "Ford" ) ); - unitOfWork.newEntity( Car.class, StringIdentity.fromString( "Ferrari" ) ); + unitOfWork.newEntity( Car.class, StringIdentity.identity( "Ferrari" ) ); + unitOfWork.newEntity( Car.class, StringIdentity.identity( "Ford" ) ); + unitOfWork.newEntity( Car.class, StringIdentity.identity( "Ferrari" ) ); unitOfWork.complete(); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/activation/ImportedServiceActivationTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/activation/ImportedServiceActivationTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/activation/ImportedServiceActivationTest.java index db3cca8..07674f0 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/activation/ImportedServiceActivationTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/activation/ImportedServiceActivationTest.java @@ -179,7 +179,7 @@ public class ImportedServiceActivationTest module -> { module.importedServices( TestedService.class ). importedBy( ImportedServiceDeclaration.SERVICE_IMPORTER ). - setMetaInfo( StringIdentity.fromString( "testimporter" ) ). + setMetaInfo( StringIdentity.identity( "testimporter" ) ). withActivators( TestedActivator.class ). importOnStartup(); module.services( TestedServiceImporterService.class ).identifiedBy( "testimporter" ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityTypeTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityTypeTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityTypeTest.java index ab7bf79..1c63573 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityTypeTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityTypeTest.java @@ -40,9 +40,9 @@ public class EntityTypeTest UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); try { - EntityBuilder<Rst> builder3 = uow.newEntityBuilder( Rst.class, StringIdentity.fromString( "123" ) ); - EntityBuilder<Def> builder2 = uow.newEntityBuilder( Def.class, StringIdentity.fromString( "456" ) ); - EntityBuilder<Abc> builder1 = uow.newEntityBuilder( Abc.class, StringIdentity.fromString( "789" ) ); + EntityBuilder<Rst> builder3 = uow.newEntityBuilder( Rst.class, StringIdentity.identity( "123" ) ); + EntityBuilder<Def> builder2 = uow.newEntityBuilder( Def.class, StringIdentity.identity( "456" ) ); + EntityBuilder<Abc> builder1 = uow.newEntityBuilder( Abc.class, StringIdentity.identity( "789" ) ); } finally { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityVisibilityTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityVisibilityTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityVisibilityTest.java index 908e8f2..519d2a7 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityVisibilityTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/entity/EntityVisibilityTest.java @@ -47,7 +47,7 @@ import org.junit.Test; public class EntityVisibilityTest { - public static final Identity TEST_IDENTITY = StringIdentity.fromString( "123" ); + public static final Identity TEST_IDENTITY = StringIdentity.identity( "123" ); private Energy4Java polygene; private Module module; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java index 9fa6411..637a141 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java @@ -82,7 +82,7 @@ public class ServiceInjectionTest ServiceUser user = factory.newObject( ServiceUser.class ); assertEquals( "X", user.testSingle() ); - assertThat( user.testIdentity(), equalTo( StringIdentity.fromString( "Foo" ) ) ); + assertThat( user.testIdentity(), equalTo( StringIdentity.identity( "Foo" ) ) ); assertEquals( "FooX", user.testServiceReference() ); assertEquals( "Bar", user.testQualifier() ); assertEquals( "A", user.testStringIterable() ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/injection/UnitOfWorkInjectionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/injection/UnitOfWorkInjectionTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/injection/UnitOfWorkInjectionTest.java index 105a698..cd61437 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/injection/UnitOfWorkInjectionTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/injection/UnitOfWorkInjectionTest.java @@ -53,7 +53,7 @@ public class UnitOfWorkInjectionTest UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( usecase ); try { - Trial trial = uow.newEntity( Trial.class, StringIdentity.fromString( "123" ) ); + Trial trial = uow.newEntity( Trial.class, StringIdentity.identity( "123" ) ); trial.doSomething(); uow.complete(); uow = unitOfWorkFactory.newUnitOfWork( usecase ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyMixinTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyMixinTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyMixinTest.java index 6432ccb..2b3b6af 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyMixinTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyMixinTest.java @@ -62,11 +62,11 @@ public class AssemblyMixinTest throws UnitOfWorkCompletionException { UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - FooEntity entity = uow.newEntity( FooEntity.class, StringIdentity.fromString( "123" ) ); + FooEntity entity = uow.newEntity( FooEntity.class, StringIdentity.identity( "123" ) ); uow.complete(); uow = unitOfWorkFactory.newUnitOfWork(); - Foo foo = uow.get( Foo.class, StringIdentity.fromString( "123" ) ); + Foo foo = uow.get( Foo.class, StringIdentity.identity( "123" ) ); try { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyRoleTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyRoleTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyRoleTest.java index 965d8a8..f051aec 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyRoleTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/AssemblyRoleTest.java @@ -71,11 +71,11 @@ public class AssemblyRoleTest throws UnitOfWorkCompletionException { UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - uow.newEntity( FooEntity.class, StringIdentity.fromString( "123" ) ); + uow.newEntity( FooEntity.class, StringIdentity.identity( "123" ) ); uow.complete(); uow = unitOfWorkFactory.newUnitOfWork(); - Foo foo = uow.get( Foo.class, StringIdentity.fromString( "123" ) ); + Foo foo = uow.get( Foo.class, StringIdentity.identity( "123" ) ); try { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/JDKMixinTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/JDKMixinTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/JDKMixinTest.java index 8bf7e41..831babd 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/JDKMixinTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/JDKMixinTest.java @@ -98,8 +98,8 @@ public class JDKMixinTest extends AbstractPolygeneTest } } - private static final Identity EXTENDS_IDENTITY = StringIdentity.fromString( ExtendsJDKMixin.class.getName() ); - private static final Identity COMPOSE_IDENTITY = StringIdentity.fromString( ComposeWithJDKMixin.class.getName() ); + private static final Identity EXTENDS_IDENTITY = StringIdentity.identity( ExtendsJDKMixin.class.getName() ); + private static final Identity COMPOSE_IDENTITY = StringIdentity.identity( ComposeWithJDKMixin.class.getName() ); private static final Predicate<ServiceReference<?>> EXTENDS_IDENTITY_SPEC = new ServiceIdentitySpec( EXTENDS_IDENTITY ); private static final Predicate<ServiceReference<?>> COMPOSE_IDENTITY_SPEC = new ServiceIdentitySpec( http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/objects/ObjectVisibilityTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/objects/ObjectVisibilityTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/objects/ObjectVisibilityTest.java index 33785ea..d80d4e5 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/objects/ObjectVisibilityTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/objects/ObjectVisibilityTest.java @@ -47,7 +47,7 @@ import org.junit.Test; public class ObjectVisibilityTest { - public static final Identity TEST_IDENTITY = StringIdentity.fromString( "123" ); + public static final Identity TEST_IDENTITY = StringIdentity.identity( "123" ); private Energy4Java polygene; private Module module; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/query/IterableQuerySourceTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/query/IterableQuerySourceTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/query/IterableQuerySourceTest.java index 9f93dbd..9dbf52f 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/query/IterableQuerySourceTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/query/IterableQuerySourceTest.java @@ -214,7 +214,7 @@ public class IterableQuerySourceTest { QueryBuilder<Person> qb = qbf.newQueryBuilder( Person.class ); Person person = templateFor( Person.class ); - City kl = uow.get( City.class, StringIdentity.fromString( "kualalumpur" )); + City kl = uow.get( City.class, StringIdentity.identity( "kualalumpur" ) ); Query<Person> query = qb.where( eq( person.mother().get().placeOfBirth(), kl ) ).newQuery( Network.persons() ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/query/Network.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/query/Network.java b/core/runtime/src/test/java/org/apache/polygene/runtime/query/Network.java index a84aca2..727d168 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/query/Network.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/query/Network.java @@ -44,8 +44,8 @@ import org.apache.polygene.runtime.query.model.values.ContactsValue; */ class Network { - public static final Identity KUALALUMPUR = StringIdentity.fromString( "kualalumpur" ); - public static final Identity PENANG = StringIdentity.fromString( "penang" ); + public static final Identity KUALALUMPUR = StringIdentity.identity( "kualalumpur" ); + public static final Identity PENANG = StringIdentity.identity( "penang" ); private static List<Domain> domains; private static List<Person> persons; private static List<Male> males; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/service/ServiceVisibilityTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/service/ServiceVisibilityTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/service/ServiceVisibilityTest.java index f1d2f5c..289be4b 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/service/ServiceVisibilityTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/service/ServiceVisibilityTest.java @@ -46,7 +46,7 @@ import org.junit.Test; public class ServiceVisibilityTest { - public static final Identity TEST_IDENTITY = StringIdentity.fromString( "123" ); + public static final Identity TEST_IDENTITY = StringIdentity.identity( "123" ); private Energy4Java polygene; private Module module; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/transients/TransientVisibilityTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/transients/TransientVisibilityTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/transients/TransientVisibilityTest.java index 2a80ff1..6e6abab 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/transients/TransientVisibilityTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/transients/TransientVisibilityTest.java @@ -47,7 +47,7 @@ import org.junit.Test; public class TransientVisibilityTest { - public static final Identity TEST_IDENTITY = StringIdentity.fromString( "123" ); + public static final Identity TEST_IDENTITY = StringIdentity.identity( "123" ); private Energy4Java polygene; private Module module; private Application app; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/PrivateEntityUnitOfWorkTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/PrivateEntityUnitOfWorkTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/PrivateEntityUnitOfWorkTest.java index 8ee0fb0..425ae18 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/PrivateEntityUnitOfWorkTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/PrivateEntityUnitOfWorkTest.java @@ -52,7 +52,7 @@ import static org.junit.Assert.fail; */ public class PrivateEntityUnitOfWorkTest { - private static final Identity TEST_IDENTITY = StringIdentity.fromString( "1" ); + private static final Identity TEST_IDENTITY = StringIdentity.identity( "1" ); @Structure private UnitOfWorkFactory uowf; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/RemovalTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/RemovalTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/RemovalTest.java index 765fe6a..1a95f2f 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/RemovalTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/unitofwork/RemovalTest.java @@ -40,7 +40,7 @@ public class RemovalTest extends AbstractPolygeneTest { - private static final Identity TEST_IDENTITY = StringIdentity.fromString( "123" ); + private static final Identity TEST_IDENTITY = StringIdentity.identity( "123" ); public void assemble(ModuleAssembly module ) throws AssemblyException http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/value/AssociationToValueTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/value/AssociationToValueTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/value/AssociationToValueTest.java index 2966ea5..ffbe234 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/value/AssociationToValueTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/value/AssociationToValueTest.java @@ -151,7 +151,7 @@ public class AssociationToValueTest extends AbstractPolygeneTest public Person findPersonByName( String name ) { UnitOfWork uow = unitOfWorkFactory.currentUnitOfWork(); - return uow.toValue( Person.class, uow.get( Person.class, StringIdentity.fromString( name ) ) ); + return uow.toValue( Person.class, uow.get( Person.class, StringIdentity.identity( name ) ) ); } } @@ -206,7 +206,7 @@ public class AssociationToValueTest extends AbstractPolygeneTest private Person createPerson( String name ) { UnitOfWork uow = uowf.currentUnitOfWork(); - return uow.newEntity( Person.class, StringIdentity.fromString( name ) ); + return uow.newEntity( Person.class, StringIdentity.identity( name ) ); } } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueSerializationRegressionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueSerializationRegressionTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueSerializationRegressionTest.java index f29895d..f48bfe3 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueSerializationRegressionTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueSerializationRegressionTest.java @@ -50,7 +50,7 @@ public class ValueSerializationRegressionTest extends AbstractPolygeneTest throws UnitOfWorkCompletionException { ValueBuilder<DualFaced> builder = valueBuilderFactory.newValueBuilder( DualFaced.class ); - builder.prototype().identity().set( StringIdentity.fromString( "1234" ) ); + builder.prototype().identity().set( StringIdentity.identity( "1234" ) ); builder.prototype().name().set( "Hedhman" ); DualFaced value = builder.newInstance(); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java index b0d7336..191808b 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java @@ -48,7 +48,7 @@ import org.junit.Test; public class ValueVisibilityTest { - public static final Identity TEST_IDENTIY = StringIdentity.fromString( "123" ); + public static final Identity TEST_IDENTIY = StringIdentity.identity( "123" ); private Energy4Java polygene; private Module module; private Application app; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueWithAssociationTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueWithAssociationTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueWithAssociationTest.java index 02067e5..655505c 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueWithAssociationTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueWithAssociationTest.java @@ -113,7 +113,7 @@ public class ValueWithAssociationTest extends AbstractPolygeneTest throws UnitOfWorkCompletionException { ValueBuilder<DualFaced> builder = valueBuilderFactory.newValueBuilder( DualFaced.class ); - builder.prototype().identity().set( StringIdentity.fromString( "1234" ) ); + builder.prototype().identity().set( StringIdentity.identity( "1234" ) ); builder.prototype().name().set( "Hedhman" ); DualFaced value = builder.newInstance(); @@ -125,8 +125,8 @@ public class ValueWithAssociationTest extends AbstractPolygeneTest try (UnitOfWork uow = unitOfWorkFactory.newUnitOfWork()) { - DualFaced entity = uow.get( DualFaced.class, StringIdentity.fromString( "1234" ) ); - assertThat( entity.identity().get(), equalTo( StringIdentity.fromString( "1234" ) ) ); + DualFaced entity = uow.get( DualFaced.class, StringIdentity.identity( "1234" ) ); + assertThat( entity.identity().get(), equalTo( StringIdentity.identity( "1234" ) ) ); assertThat( entity.name().get(), equalTo( "Hedhman" ) ); uow.complete(); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/runtime/visibility/VisibilityInUnitOfWorkTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/visibility/VisibilityInUnitOfWorkTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/visibility/VisibilityInUnitOfWorkTest.java index 559605f..ec9d072 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/visibility/VisibilityInUnitOfWorkTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/visibility/VisibilityInUnitOfWorkTest.java @@ -41,8 +41,8 @@ import org.junit.Test; public class VisibilityInUnitOfWorkTest { - public static final Identity TEST_IDENTITY1 = StringIdentity.fromString( "123" ); - public static final Identity TEST_IDENTITY2 = StringIdentity.fromString( "345" ); + public static final Identity TEST_IDENTITY1 = StringIdentity.identity( "123" ); + public static final Identity TEST_IDENTITY2 = StringIdentity.identity( "345" ); @Test public void givenTwoModulesWithServiceAndEntityInOneAndEntityInOtherWhenOtherEntityAccessServiceWhichUsesItsEntityExpectServiceToHaveVisibility() http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/runtime/src/test/java/org/apache/polygene/spi/service/importer/ServiceInstanceImporterTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/spi/service/importer/ServiceInstanceImporterTest.java b/core/runtime/src/test/java/org/apache/polygene/spi/service/importer/ServiceInstanceImporterTest.java index 2c566b4..237e8ab 100644 --- a/core/runtime/src/test/java/org/apache/polygene/spi/service/importer/ServiceInstanceImporterTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/spi/service/importer/ServiceInstanceImporterTest.java @@ -46,7 +46,7 @@ public class ServiceInstanceImporterTest { module.importedServices( TestService.class ). identifiedBy( "test" ). - setMetaInfo( StringIdentity.fromString( "testimporter" ) ). + setMetaInfo( StringIdentity.identity( "testimporter" ) ). importedBy( ImportedServiceDeclaration.SERVICE_IMPORTER ); module.services( TestImporterService.class ).identifiedBy( "testimporter" ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/JSONMapEntityStoreMixin.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/JSONMapEntityStoreMixin.java b/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/JSONMapEntityStoreMixin.java index b88c189..cedcedc 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/JSONMapEntityStoreMixin.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/JSONMapEntityStoreMixin.java @@ -419,7 +419,7 @@ public class JSONMapEntityStoreMixin String version = parsedState.getString( JSONKeys.VERSION ); Instant modified = Instant.ofEpochMilli( parsedState.getJsonNumber( JSONKeys.MODIFIED ).longValueExact() ); - Identity identity = StringIdentity.fromString( parsedState.getString( JSONKeys.IDENTITY ) ); + Identity identity = StringIdentity.identity( parsedState.getString( JSONKeys.IDENTITY ) ); // Check if version is correct JsonObject state; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/MapEntityStoreMixin.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/MapEntityStoreMixin.java b/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/MapEntityStoreMixin.java index 5e784f7..2c98677 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/MapEntityStoreMixin.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/entitystore/helpers/MapEntityStoreMixin.java @@ -382,7 +382,7 @@ public class MapEntityStoreMixin String version = parsedState.getString( JSONKeys.VERSION ); Instant modified = Instant.ofEpochMilli( parsedState.getJsonNumber( JSONKeys.MODIFIED ).longValueExact() ); - Identity identity = StringIdentity.fromString( parsedState.getString( JSONKeys.IDENTITY ) ); + Identity identity = StringIdentity.identity( parsedState.getString( JSONKeys.IDENTITY ) ); // Check if version is correct JsonObject state; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/spi/src/main/java/org/apache/polygene/spi/serialization/BuiltInConverters.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/serialization/BuiltInConverters.java b/core/spi/src/main/java/org/apache/polygene/spi/serialization/BuiltInConverters.java index 0c1b774..d86b81d 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/serialization/BuiltInConverters.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/serialization/BuiltInConverters.java @@ -108,7 +108,7 @@ public interface BuiltInConverters @Override public Identity fromString( String string ) { - return StringIdentity.fromString( string ); + return StringIdentity.identity( string ); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/spi/src/test/java/org/apache/polygene/spi/entitystore/Polygene142Test.java ---------------------------------------------------------------------- diff --git a/core/spi/src/test/java/org/apache/polygene/spi/entitystore/Polygene142Test.java b/core/spi/src/test/java/org/apache/polygene/spi/entitystore/Polygene142Test.java index 85bc744..b9030bd 100644 --- a/core/spi/src/test/java/org/apache/polygene/spi/entitystore/Polygene142Test.java +++ b/core/spi/src/test/java/org/apache/polygene/spi/entitystore/Polygene142Test.java @@ -61,7 +61,7 @@ public class Polygene142Test extends AbstractPolygeneTest value = serialization.deserialize( module, Regression142Type.class, serialized ); // ok } { - Identity valueId = StringIdentity.fromString( "abcdefg" ); + Identity valueId = StringIdentity.identity( "abcdefg" ); { try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( UsecaseBuilder.newUsecase( "create" ) ) ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/df5fd8af/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java new file mode 100644 index 0000000..507526d --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java @@ -0,0 +1,546 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.test.entity.model; + +import java.util.Iterator; +import org.apache.polygene.api.association.NamedAssociation; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.constraint.ConstraintViolationException; +import org.apache.polygene.api.identity.Identity; +import org.apache.polygene.api.injection.scope.Service; +import org.apache.polygene.api.injection.scope.Structure; +import org.apache.polygene.api.object.ObjectFactory; +import org.apache.polygene.api.structure.Application; +import org.apache.polygene.api.structure.ApplicationDescriptor; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.api.unitofwork.NoSuchEntityException; +import org.apache.polygene.api.unitofwork.UnitOfWork; +import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; +import org.apache.polygene.api.usecase.UsecaseBuilder; +import org.apache.polygene.bootstrap.ApplicationAssembly; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.memory.MemoryEntityStoreService; +import org.apache.polygene.spi.serialization.JsonSerialization; +import org.apache.polygene.test.AbstractPolygeneBaseTest; +import org.apache.polygene.test.entity.model.legal.LegalService; +import org.apache.polygene.test.entity.model.legal.Will; +import org.apache.polygene.test.entity.model.legal.WillAmount; +import org.apache.polygene.test.entity.model.legal.WillItem; +import org.apache.polygene.test.entity.model.legal.WillPercentage; +import org.apache.polygene.test.entity.model.people.Address; +import org.apache.polygene.test.entity.model.people.City; +import org.apache.polygene.test.entity.model.people.Country; +import org.apache.polygene.test.entity.model.people.PeopleRepository; +import org.apache.polygene.test.entity.model.people.Person; +import org.apache.polygene.test.entity.model.people.PhoneNumber; +import org.apache.polygene.test.entity.model.people.Rent; +import org.junit.Before; +import org.junit.Test; + +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest +{ + private static final String FRIEND = "Friend"; + private static final String COLLEAGUE = "Colleague"; + + @Structure + private ObjectFactory obf; + + @Service + private LegalService legalService; + + @Service + private PeopleRepository peopleRepository; + + @Structure + private UnitOfWorkFactory uowf; + private Identity baselId; + private Identity montpellierId; + private Identity hannoverId; + private Identity malmoId; + private Identity cherasId; + + private Identity unknown3Id; + private Identity unknown2Id; + private Identity unknown1Id; + private Identity varnhemId; + private Identity canaryId; + + private Identity switzerlandId; + private Identity franceId; + private Identity denmarkId; + private Identity germanyId; + private Identity swedenId; + private Identity usId; + private Identity malaysiaId; + + @Before + public void setupTestData() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "TestData Generation" ) ) ) + { + testData(); + uow.complete(); + } + } + + @Test + public void validateAllCountriesPresent() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - validateAllCountriesPresent" ) ) ) + { + assertThat( peopleRepository.findCountryByCountryCode( "my" ).name().get(), equalTo( "Malaysia" ) ); + assertThat( peopleRepository.findCountryByCountryCode( "us" ).name().get(), equalTo( "United States" ) ); + assertThat( peopleRepository.findCountryByCountryCode( "se" ).name().get(), equalTo( "Sweden" ) ); + assertThat( peopleRepository.findCountryByCountryCode( "de" ).name().get(), equalTo( "Germany" ) ); + assertThat( peopleRepository.findCountryByCountryCode( "dk" ).name().get(), equalTo( "Denmark" ) ); + assertThat( peopleRepository.findCountryByCountryCode( "fr" ).name().get(), equalTo( "France" ) ); + assertThat( peopleRepository.findCountryByCountryCode( "ch" ).name().get(), equalTo( "Switzerland" ) ); + } + } + + @Test + public void validateAllCitiesPresent() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - validateAllCitiesPresent" ) ) ) + { + assertThat( peopleRepository.findCity( baselId ).name().get(), equalTo( "Basel" ) ); + assertThat( peopleRepository.findCity( malmoId ).name().get(), equalTo( "Malmo" ) ); + assertThat( peopleRepository.findCity( cherasId ).name().get(), equalTo( "Cheras" ) ); + assertThat( peopleRepository.findCity( hannoverId ).name().get(), equalTo( "Hannover" ) ); + assertThat( peopleRepository.findCity( montpellierId ).name().get(), equalTo( "Montpellier" ) ); + } + } + + @Test + public void validateAllAddressesPresent() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - validateAllAddressesPresent" ) ) ) + { + Address canary = peopleRepository.findAddress( canaryId ); + assertThat( canary.street().get(), equalTo( "10, CH5A, Jalan Cheras Hartamas" ) ); + assertThat( canary.country().get().identity().get(), equalTo( malaysiaId ) ); + assertThat( canary.city().get().identity().get(), equalTo( cherasId ) ); + assertThat( canary.zipCode().get(), equalTo( "43200" ) ); + + Address varnhem = peopleRepository.findAddress( varnhemId ); + assertThat( varnhem.street().get(), equalTo( "Varnhemsgatan 25" ) ); + assertThat( varnhem.city().get().identity().get(), equalTo( malmoId ) ); + assertThat( varnhem.country().get().identity().get(), equalTo( swedenId ) ); + assertThat( varnhem.zipCode().get(), equalTo( "215 00" ) ); + + Address unknown = peopleRepository.findAddress( unknown1Id ); + assertThat( unknown.street().get(), equalTo( "" ) ); + assertThat( unknown.city().get().identity().get(), equalTo( montpellierId ) ); + assertThat( unknown.country().get().identity().get(), equalTo( franceId ) ); + assertThat( unknown.zipCode().get(), equalTo( "" ) ); + + unknown = peopleRepository.findAddress( unknown2Id ); + assertThat( unknown.street().get(), equalTo( "" ) ); + assertThat( unknown.city().get().identity().get(), equalTo( hannoverId ) ); + assertThat( unknown.country().get().identity().get(), equalTo( germanyId ) ); + assertThat( unknown.zipCode().get(), equalTo( "" ) ); + + unknown = peopleRepository.findAddress( unknown3Id ); + assertThat( unknown.street().get(), equalTo( "" ) ); + assertThat( unknown.city().get().identity().get(), equalTo( baselId ) ); + assertThat( unknown.country().get().identity().get(), equalTo( switzerlandId ) ); + assertThat( unknown.zipCode().get(), equalTo( "" ) ); + } + } + + @Test + public void validateAllPersonsPresent() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - validateAllPersonsPresent" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + assertThat( niclas.name().get(), equalTo( "Niclas" ) ); + Person eric = peopleRepository.findPersonByName( "Eric" ); + assertThat( eric.name().get(), equalTo( "Eric" ) ); + Person paul = peopleRepository.findPersonByName( "Paul" ); + assertThat( paul.name().get(), equalTo( "Paul" ) ); + Person toni = peopleRepository.findPersonByName( "Toni" ); + assertThat( toni.name().get(), equalTo( "Toni" ) ); + Person janna = peopleRepository.findPersonByName( "Janna" ); + assertThat( janna.name().get(), equalTo( "Janna" ) ); + Person peter = peopleRepository.findPersonByName( "Peter" ); + assertThat( peter.name().get(), equalTo( "Peter" ) ); + Person oscar = peopleRepository.findPersonByName( "Oscar" ); + assertThat( oscar.name().get(), equalTo( "Oscar" ) ); + Person kalle = peopleRepository.findPersonByName( "Kalle" ); + assertThat( kalle.name().get(), equalTo( "Kalle" ) ); + Person andreas = peopleRepository.findPersonByName( "Andreas" ); + assertThat( andreas.name().get(), equalTo( "Andreas" ) ); + } + } + + @Test + public void givenTestDataWhenAddingNewNamedAssociationExpectAssociationAdded() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - givenTestDataWhenAddingNewNamedAssociationExpectAssociationAdded" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + PhoneNumber newNumber = peopleRepository.createPhoneNumber( "+86-185-21320803" ); + niclas.phoneNumbers().put( "Mobile", newNumber ); + uow.complete(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - givenTestDataWhenAddingNewNamedAssociationExpectAssociationAdded" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + NamedAssociation<PhoneNumber> numbers = niclas.phoneNumbers(); + assertThat( numbers.count(), equalTo( 2 ) ); + PhoneNumber mobile = numbers.get( "Mobile" ); + assertThat( mobile.countryCode().get(), equalTo( 86 ) ); + assertThat( mobile.areaCode().get(), equalTo( 185 ) ); + assertThat( mobile.number().get(), equalTo( "21320803" ) ); + PhoneNumber home = numbers.get( "Home" ); + assertThat( home.countryCode().get(), equalTo( 60 ) ); + assertThat( home.areaCode().get(), equalTo( 16 ) ); + assertThat( home.number().get(), equalTo( "7636344" ) ); + } + } + + @Test + public void whenIteratingNamedAssociationExpectIterationInOrder() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenIteratingNamedAssociationExpectIterationToSucceed" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + PhoneNumber newNumber1 = peopleRepository.createPhoneNumber( "+86-185-21320803" ); + niclas.phoneNumbers().put( "Chinese", newNumber1 ); + PhoneNumber newNumber2 = peopleRepository.createPhoneNumber( "+46-70-9876543" ); + niclas.phoneNumbers().put( "Swedish", newNumber2 ); + PhoneNumber newNumber3 = peopleRepository.createPhoneNumber( "+49-444-2832989823" ); + niclas.phoneNumbers().put( "German", newNumber3 ); + uow.complete(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenIteratingNamedAssociationExpectIterationToSucceed" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + Iterator<String> numbers = niclas.phoneNumbers().iterator(); + assertThat( numbers.hasNext(), is( true ) ); + assertThat( numbers.next(), equalTo( "Home" ) ); + assertThat( numbers.hasNext(), is( true ) ); + assertThat( numbers.next(), equalTo( "Chinese" ) ); + assertThat( numbers.hasNext(), is( true ) ); + assertThat( numbers.next(), equalTo( "Swedish" ) ); + assertThat( numbers.hasNext(), is( true ) ); + assertThat( numbers.next(), equalTo( "German" ) ); + } + } + + @Test + public void givenTestDataWhenAddingSameNamedAssociationExpectAssociationModified() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - givenTestDataWhenAddingSameNamedAssociationExpectAssociationModified" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + PhoneNumber newNumber = peopleRepository.createPhoneNumber( "+86-185-21320803" ); + niclas.phoneNumbers().put( "Home", newNumber ); + uow.complete(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - givenTestDataWhenAddingSameNamedAssociationExpectAssociationModified" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + NamedAssociation<PhoneNumber> numbers = niclas.phoneNumbers(); + assertThat( numbers.count(), equalTo( 1 ) ); + PhoneNumber home = numbers.get( "Home" ); + assertThat( home.countryCode().get(), equalTo( 86 ) ); + assertThat( home.areaCode().get(), equalTo( 185 ) ); + assertThat( home.number().get(), equalTo( "21320803" ) ); + } + } + + @Test + public void whenNullingOptionalAssociationExpectSuccess() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenNullingOptionalAssociationExpectSuccess" ) ) ) + { + Person toni = peopleRepository.findPersonByName( "Toni" ); + toni.spouse().set( null ); + uow.complete(); + } + } + + @Test( expected = ConstraintViolationException.class ) + public void whenNullingNonOptionalAssociationExpectFailure() + { + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenNullingOptionalAssociationExpectSuccess" ) ) ) + { + Person toni = peopleRepository.findPersonByName( "Toni" ); + toni.nationality().set( null ); + uow.complete(); + } + } + + @Test + public void whenRemovingEntityExpectAggregatedEntitiesToBeRemoved() + { + Identity homePhoneId; + Identity chinesePhoneId; + Identity germanPhoneId; + Identity swedishPhoneId; + Identity switzerlandId; + Identity malaysiaId; + Identity canaryId; + Identity despairStId; + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + PhoneNumber newNumber1 = peopleRepository.createPhoneNumber( "+86-185-21320803" ); + niclas.phoneNumbers().put( "Chinese", newNumber1 ); + PhoneNumber newNumber2 = peopleRepository.createPhoneNumber( "+46-70-9876543" ); + niclas.phoneNumbers().put( "Swedish", newNumber2 ); + PhoneNumber newNumber3 = peopleRepository.createPhoneNumber( "+49-444-2832989823" ); + niclas.phoneNumbers().put( "German", newNumber3 ); + homePhoneId = niclas.phoneNumbers().get( "Home" ).identity().get(); + swedishPhoneId = niclas.phoneNumbers().get( "Swedish" ).identity().get(); + chinesePhoneId = niclas.phoneNumbers().get( "Chinese" ).identity().get(); + germanPhoneId = niclas.phoneNumbers().get( "German" ).identity().get(); + + City basel = peopleRepository.findCity( baselId ); + Country switzerland = peopleRepository.findCountryByCountryCode( "ch" ); + niclas.movedToNewAddress( "DespairStreet 12A", "43HQ21", basel, switzerland, obf.newObject( Rent.Builder.class ).create( 1000, "EUR" ) ); + uow.complete(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + assertThat( niclas.nationality().get().name().get(), equalTo( "Sweden" ) ); + assertThat( niclas.oldAddresses().count(), equalTo( 1 ) ); + assertThat( niclas.address().get().country().get().name().get(), equalTo( "Switzerland" ) ); + canaryId = niclas.oldAddresses().get( 0 ).identity().get(); + despairStId = niclas.address().get().identity().get(); + malaysiaId = niclas.oldAddresses().get( 0 ).country().get().identity().get(); + switzerlandId = niclas.address().get().country().get().identity().get(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + uow.remove( niclas ); + uow.complete(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findPhoneNumberById( homePhoneId ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findPhoneNumberById( chinesePhoneId ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findPhoneNumberById( swedishPhoneId ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findPhoneNumberById( germanPhoneId ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findAddress( canaryId ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findAddress( despairStId ); + } + catch( NoSuchEntityException e ) + { + // expected + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) + { + peopleRepository.findCountryByIdentity( switzerlandId ); + peopleRepository.findCountryByIdentity( malaysiaId ); + + peopleRepository.findPersonByName( "Peter" ); + peopleRepository.findPersonByName( "Andreas" ); + peopleRepository.findPersonByName( "Toni" ); + peopleRepository.findPersonByName( "Paul" ); + } + } + + @Test( expected = IllegalStateException.class ) + public void whenNoActiveUnitOfWorkExpectIllegalStateException() + { + peopleRepository.findCountryByIdentity( switzerlandId ); + } + + private void testData() + { + Country malaysia = peopleRepository.createCountry( "my", "Malaysia" ); + malaysiaId = malaysia.identity().get(); + Country us = peopleRepository.createCountry( "us", "United States" ); + usId = us.identity().get(); + Country sweden = peopleRepository.createCountry( "se", "Sweden" ); + swedenId = sweden.identity().get(); + Country germany = peopleRepository.createCountry( "de", "Germany" ); + germanyId = germany.identity().get(); + Country denmark = peopleRepository.createCountry( "dk", "Denmark" ); + denmarkId = denmark.identity().get(); + Country france = peopleRepository.createCountry( "fr", "France" ); + franceId = france.identity().get(); + Country switzerland = peopleRepository.createCountry( "ch", "Switzerland" ); + switzerlandId = switzerland.identity().get(); + City cheras = peopleRepository.createCity( "Cheras" ); + cherasId = cheras.identity().get(); + City malmo = peopleRepository.createCity( "Malmo" ); + malmoId = malmo.identity().get(); + City hannover = peopleRepository.createCity( "Hannover" ); + hannoverId = hannover.identity().get(); + City montpellier = peopleRepository.createCity( "Montpellier" ); + montpellierId = montpellier.identity().get(); + City basel = peopleRepository.createCity( "Basel" ); + baselId = basel.identity().get(); + Rent.Builder rentBuilder = obf.newObject( Rent.Builder.class ); + Rent rentCanary = rentBuilder.create( 3000, "MYR" ); + Rent rentVarnhem = rentBuilder.create( 9000, "SEK" ); + Rent rentUnknown1 = rentBuilder.create( 1200, "EUR" ); + Rent rentUnknown2 = rentBuilder.create( 900, "EUR" ); + Rent rentUnknown3 = rentBuilder.create( 2200, "EUR" ); + Address canaryResidence = peopleRepository.createAddress( "10, CH5A, Jalan Cheras Hartamas", "43200", cheras, malaysia, rentCanary ); + canaryId = canaryResidence.identity().get(); + Address varnhem = peopleRepository.createAddress( "Varnhemsgatan 25", "215 00", malmo, sweden, rentVarnhem ); + varnhemId = varnhem.identity().get(); + Address unknown1 = peopleRepository.createAddress( "", "", montpellier, france, rentUnknown1 ); + unknown1Id = unknown1.identity().get(); + Address unknown2 = peopleRepository.createAddress( "", "", hannover, germany, rentUnknown2 ); + unknown2Id = unknown2.identity().get(); + Address unknown3 = peopleRepository.createAddress( "", "", basel, switzerland, rentUnknown3 ); + unknown3Id = unknown3.identity().get(); + Person eric = peopleRepository.createPerson( "Eric", malaysia, canaryResidence, null, null ); + Person niclas = peopleRepository.createPerson( "Niclas", sweden, canaryResidence, null, peopleRepository.createPhoneNumber( "+60-16-7636344" ) ); + niclas.children().add( eric ); + Person kalle = peopleRepository.createPerson( "Kalle", sweden, varnhem, null, null ); + Person oscar = peopleRepository.createPerson( "Oscar", sweden, varnhem, null, null ); + Person peter = peopleRepository.createPerson( "Peter", germany, varnhem, null, peopleRepository.createPhoneNumber( "+46-70-1234567" ) ); + peter.children().add( kalle ); + peter.children().add( oscar ); + Person paul = peopleRepository.createPerson( "Paul", france, unknown1, null, peopleRepository.createPhoneNumber( "+33-88-333666999" ) ); + Person janna = peopleRepository.createPerson( "Janna", france, unknown2, null, peopleRepository.createPhoneNumber( "+49-11-22334455" ) ); + Person toni = peopleRepository.createPerson( "Toni", france, unknown2, janna, peopleRepository.createPhoneNumber( "+49-12-99887766" ) ); + janna.spouse().set( toni ); + Person andreas = peopleRepository.createPerson( "Andreas", germany, unknown3, null, peopleRepository.createPhoneNumber( "+41-98-1234567" ) ); + NamedAssociation<Person> niclasRels = niclas.relationships(); + niclasRels.put( FRIEND, peter ); + niclasRels.put( FRIEND, toni ); + niclasRels.put( FRIEND, andreas ); + niclasRels.put( FRIEND, paul ); + niclasRels.put( COLLEAGUE, toni ); + niclasRels.put( COLLEAGUE, andreas ); + } + + @Override + protected void defineApplication( ApplicationAssembly applicationAssembly ) + throws AssemblyException + { + LayerAssembly accessLayer = applicationAssembly.layer( "Access Layer" ); + LayerAssembly domainLayer = applicationAssembly.layer( "Domain Layer" ); + LayerAssembly infrastructureLayer = applicationAssembly.layer( "Infrastructure Layer" ); + LayerAssembly configLayer = applicationAssembly.layer( "Configuration Layer" ); + accessLayer.uses( domainLayer.uses( infrastructureLayer.uses( configLayer ) ) ); + defineConfigModule( configLayer.module( "Configuration Module" ) ); + defineSerializationModule( configLayer.module( "Serialization Module" ) ); + defineStorageModule( infrastructureLayer.module( "Storage Module" ) ); + definePeopleModule( domainLayer.module( "People Module" ) ); + defineLegalModule( domainLayer.module( "Legal Module" ) ); + defineTestModule( accessLayer.module( "TestCase Module" ) ); + } + + @Override + protected Application newApplicationInstance( ApplicationDescriptor applicationModel ) + { + Application application = super.newApplicationInstance( applicationModel ); + Module module = application.findModule( "Access Layer", "TestCase Module" ); + module.injectTo( this ); + return application; + } + + protected void defineTestModule( ModuleAssembly module ) + { + module.defaultServices(); + module.objects( this.getClass() ); + } + + protected void definePeopleModule( ModuleAssembly module ) + { + module.defaultServices(); + module.entities( Address.class, City.class, PhoneNumber.class ); + module.entities( Country.class, Person.class ); + module.services( PeopleRepository.class ).visibleIn( Visibility.application ); + module.values( Rent.class ); + module.objects( Rent.Builder.class ).visibleIn( Visibility.application ); + } + + protected void defineLegalModule( ModuleAssembly module ) + { + module.defaultServices(); + module.services( LegalService.class ).visibleIn( Visibility.application ); + module.entities( Will.class, WillItem.class, WillPercentage.class, WillAmount.class ); + } + + protected void defineSerializationModule( ModuleAssembly module ) + { + module.defaultServices(); + module.services( JsonSerialization.class ).visibleIn( Visibility.application ); + } + + protected abstract void defineStorageModule( ModuleAssembly module ); + + protected void defineConfigModule( ModuleAssembly module ) + { + module.defaultServices(); + module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.module ); + } +}
