Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 10F0C200B26 for ; Sun, 12 Jun 2016 10:56:30 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 0FC6F160A5C; Sun, 12 Jun 2016 08:56:30 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6F1C3160A06 for ; Sun, 12 Jun 2016 10:56:28 +0200 (CEST) Received: (qmail 28760 invoked by uid 500); 12 Jun 2016 08:56:27 -0000 Mailing-List: contact commits-help@zest.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zest.apache.org Delivered-To: mailing list commits@zest.apache.org Received: (qmail 28751 invoked by uid 99); 12 Jun 2016 08:56:27 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Jun 2016 08:56:27 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 52029E07FE; Sun, 12 Jun 2016 08:56:27 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: niclas@apache.org To: commits@zest.apache.org Date: Sun, 12 Jun 2016 08:56:27 -0000 Message-Id: <2c491f681d7840e68090ceeceb533746@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/2] zest-java git commit: ZEST-151 : Removed Conversion Library archived-at: Sun, 12 Jun 2016 08:56:30 -0000 Repository: zest-java Updated Branches: refs/heads/develop 529448658 -> 1ead13389 http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/ValueToEntityService.java ---------------------------------------------------------------------- diff --git a/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/ValueToEntityService.java b/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/ValueToEntityService.java deleted file mode 100644 index 07eb026..0000000 --- a/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/ValueToEntityService.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.zest.library.conversion.values; - -import org.apache.zest.api.entity.Identity; -import org.apache.zest.api.mixin.Mixins; - -/** - * Service that creates or updates Entities from matching Values. - * @deprecated Please use {@link org.apache.zest.api.unitofwork.UnitOfWork#toEntity(Class, Identity)} instead. - */ -@Mixins( ValueToEntityMixin.class ) -public interface ValueToEntityService - extends ValueToEntity -{ -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/package.html ---------------------------------------------------------------------- diff --git a/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/package.html b/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/package.html deleted file mode 100644 index 8e3482c..0000000 --- a/libraries/conversion/src/main/java/org/apache/zest/library/conversion/values/package.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -

Entities to Values Conversion.

- - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/EntityToValueTest.java ---------------------------------------------------------------------- diff --git a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/EntityToValueTest.java b/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/EntityToValueTest.java deleted file mode 100644 index 13c1868..0000000 --- a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/EntityToValueTest.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * 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.zest.library.conversion.values; - -import java.time.Instant; -import java.time.LocalDate; -import java.util.function.Function; -import org.junit.Test; -import org.apache.zest.api.constraint.ConstraintViolationException; -import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.api.unitofwork.UnitOfWork; -import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException; -import org.apache.zest.bootstrap.AssemblyException; -import org.apache.zest.bootstrap.ModuleAssembly; -import org.apache.zest.library.conversion.values.TestModel.PersonEntity; -import org.apache.zest.library.conversion.values.TestModel.PersonValue; -import org.apache.zest.library.conversion.values.TestModel.PersonValue2; -import org.apache.zest.library.conversion.values.TestModel.PersonValue3; -import org.apache.zest.library.conversion.values.TestModel.PersonValue4; -import org.apache.zest.test.AbstractZestTest; -import org.apache.zest.test.EntityTestAssembler; - -import static org.junit.Assert.assertEquals; -import static org.apache.zest.library.conversion.values.TestModel.createBirthDate; -import static org.apache.zest.library.conversion.values.TestModel.createPerson; - -public class EntityToValueTest - extends AbstractZestTest -{ - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - // START SNIPPET: assembly - new EntityToValueAssembler().assemble( module ); - // END SNIPPET: assembly - new EntityTestAssembler().assemble( module ); - module.entities( PersonEntity.class ); - module.values( PersonValue.class ); - module.values( PersonValue2.class ); - module.values( PersonValue3.class ); - module.values( PersonValue4.class ); - } - - @Test - public void whenConvertingEntityToValueExpectCorrectValues() - throws UnitOfWorkCompletionException - { - UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - try - { - PersonEntity entity = setupPersonEntities( uow ); - - // START SNIPPET: conversion - EntityToValueService conversion = serviceFinder.findService( EntityToValueService.class ).get(); - PersonValue value = conversion.convert( PersonValue.class, entity ); - // END SNIPPET: conversion - assertEquals( "Niclas", value.firstName().get() ); - assertEquals( "Hedhman", value.lastName().get() ); - assertEquals( "id:Lis", value.spouse().get() ); - assertEquals( "id:Eric", value.children().get().get( 0 ) ); - uow.complete(); - } - finally - { - uow.discard(); - } - } - - @Test - public void givenUnqualifiedValueWhenConvertingEntityExpectCorrectMapping() - throws UnitOfWorkCompletionException - { - UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - try - { - PersonEntity niclas = setupPersonEntities( uow ); - - ServiceReference reference = serviceFinder.findService( EntityToValueService.class ); - EntityToValueService service = reference.get(); - - PersonValue2 niclasValue = service.convert( PersonValue2.class, niclas ); - assertEquals( "Niclas", niclasValue.firstName().get() ); - assertEquals( "Hedhman", niclasValue.lastName().get() ); - assertEquals( "id:Lis", niclasValue.spouse().get() ); - assertEquals( "id:Eric", niclasValue.children().get().get( 0 ) ); - uow.complete(); - } - finally - { - uow.discard(); - } - } - - @Test - public void givenUnqualifiedValue2WhenConvertingEntityExpectCorrectMapping() - throws UnitOfWorkCompletionException - { - UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - try - { - PersonEntity niclas = setupPersonEntities( uow ); - - ServiceReference reference = serviceFinder.findService( EntityToValueService.class ); - EntityToValueService service = reference.get(); - - PersonValue3 niclasValue = service.convert( PersonValue3.class, niclas ); - assertEquals( "Niclas", niclasValue.firstName().get() ); - assertEquals( "Hedhman", niclasValue.lastName().get() ); - assertEquals( "id:Lis", niclasValue.spouse().get() ); - assertEquals( "id:Eric", niclasValue.children().get().get( 0 ) ); - uow.complete(); - } - finally - { - uow.discard(); - } - } - - @Test( expected = ConstraintViolationException.class ) - public void givenQualifiedValueNotFromSameInterfaceWhenConvertingEntityExpectNonOptionalException() - throws UnitOfWorkCompletionException - { - UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - try - { - PersonEntity niclas = setupPersonEntities( uow ); - - ServiceReference reference = serviceFinder.findService( EntityToValueService.class ); - EntityToValueService service = reference.get(); - - PersonValue4 niclasValue = service.convert( PersonValue4.class, niclas ); - uow.complete(); - } - finally - { - uow.discard(); - } - } - - @Test - public void whenConvertingEntityToValueUsingPrototypeOpportunityExpectCorrectValues() - throws UnitOfWorkCompletionException - { - UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - try - { - PersonEntity entity = setupPersonEntities( uow ); - - // START SNIPPET: prototypeOpportunity - EntityToValueService conversion = serviceFinder.findService( EntityToValueService.class ).get(); - PersonValue value = conversion.convert( PersonValue.class, entity, new Function() - { - @Override - public PersonValue apply( PersonValue prototype ) - { - prototype.firstName().set( "Prototype Opportunity" ); - return prototype; - } - } ); - // END SNIPPET: prototypeOpportunity - assertEquals( "Prototype Opportunity", value.firstName().get() ); - assertEquals( "Hedhman", value.lastName().get() ); - assertEquals( "id:Lis", value.spouse().get() ); - assertEquals( "id:Eric", value.children().get().get( 0 ) ); - uow.complete(); - } - finally - { - uow.discard(); - } - } - - private static PersonEntity setupPersonEntities( UnitOfWork uow ) - { - PersonEntity niclas = createNiclas( uow ); - PersonEntity lis = createLis( uow ); - PersonEntity eric = createEric( uow ); - niclas.spouse().set( lis ); - niclas.children().add( eric ); - lis.spouse().set( niclas ); - lis.children().add( eric ); - assertEquals( "Niclas", niclas.firstName() ); - assertEquals( "Hedhman", niclas.lastName() ); - assertEquals( "Lis", lis.firstName() ); - assertEquals( "Gazi", lis.lastName() ); - assertEquals( "Eric", eric.firstName() ); - assertEquals( "Hedman", eric.lastName() ); - return niclas; - } - - private static PersonEntity createNiclas( UnitOfWork uow ) - { - String firstName = "Niclas"; - String lastName = "Hedhman"; - LocalDate birthTime = createBirthDate( 1964, 9, 25 ); - return createPerson( uow, firstName, lastName, birthTime ); - } - - private static PersonEntity createLis( UnitOfWork uow ) - { - String firstName = "Lis"; - String lastName = "Gazi"; - LocalDate birthTime = createBirthDate( 1976, 2, 19 ); - return createPerson( uow, firstName, lastName, birthTime ); - } - - private static PersonEntity createEric( UnitOfWork uow ) - { - String firstName = "Eric"; - String lastName = "Hedman"; - LocalDate birthTime = createBirthDate( 2004, 4, 8 ); - return createPerson( uow, firstName, lastName, birthTime ); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/NestedValuesConversionTest.java ---------------------------------------------------------------------- diff --git a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/NestedValuesConversionTest.java b/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/NestedValuesConversionTest.java deleted file mode 100644 index e049c30..0000000 --- a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/NestedValuesConversionTest.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * 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.zest.library.conversion.values; - -import java.util.Arrays; -import java.util.List; -import org.junit.Test; -import org.apache.zest.api.entity.EntityBuilder; -import org.apache.zest.api.entity.EntityComposite; -import org.apache.zest.api.property.Property; -import org.apache.zest.api.unitofwork.UnitOfWork; -import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException; -import org.apache.zest.api.value.ValueBuilder; -import org.apache.zest.api.value.ValueComposite; -import org.apache.zest.bootstrap.AssemblyException; -import org.apache.zest.bootstrap.ModuleAssembly; -import org.apache.zest.test.AbstractZestTest; -import org.apache.zest.test.EntityTestAssembler; - -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; - -public class NestedValuesConversionTest - extends AbstractZestTest -{ - - @Override - public void assemble( ModuleAssembly ma ) - throws AssemblyException - { - new EntityToValueAssembler().assemble( ma ); - new EntityTestAssembler().assemble( ma ); - - ma.entities( FooEntity.class ); - ma.values( FooValue.class, BarValue.class ); - } - - @Test - public void testNestedValuesConversion() - throws UnitOfWorkCompletionException - { - UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); - try - { - FooEntity fooEntity = createFooEntity( uow, "Test nested values conversion" ); - EntityToValueService conversion = serviceFinder.findService( EntityToValueService.class ).get(); - FooValue fooValue = conversion.convert( FooValue.class, fooEntity ); - assertThat( fooValue.name().get(), equalTo( "Test nested values conversion" ) ); - assertThat( fooValue.bar().get().bazar().get(), equalTo( "single" ) ); - List barList = fooValue.barList().get(); - assertThat( barList.size(), equalTo( 3 ) ); - assertThat( barList.get( 0 ).bazar().get(), equalTo( "multi-one" ) ); - assertThat( barList.get( 1 ).bazar().get(), equalTo( "multi-two" ) ); - assertThat( barList.get( 2 ).bazar().get(), equalTo( "multi-three" ) ); - uow.complete(); - uow = null; - } - finally - { - if( uow != null ) - { - uow.discard(); - } - } - } - - private FooEntity createFooEntity( UnitOfWork uow, String name ) - { - EntityBuilder builder = uow.newEntityBuilder( FooEntity.class ); - builder.instance().name().set( name ); - builder.instance().bar().set( createBarValue( "single" ) ); - List bars = Arrays.asList( createBarValue( "multi-one" ), - createBarValue( "multi-two" ), - createBarValue( "multi-three" ) ); - builder.instance().barList().set( bars ); - return builder.newInstance(); - } - - private BarValue createBarValue( String bazar ) - { - ValueBuilder builder = valueBuilderFactory.newValueBuilder( BarValue.class ); - builder.prototype().bazar().set( bazar ); - return builder.newInstance(); - } - - public interface FooState - { - - Property name(); - - Property bar(); - - Property> barList(); - } - - public interface FooValue - extends FooState, ValueComposite - { - } - - public interface FooEntity - extends FooState, EntityComposite - { - } - - public interface BarValue - extends ValueComposite - { - - Property bazar(); - } - -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/TestModel.java ---------------------------------------------------------------------- diff --git a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/TestModel.java b/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/TestModel.java deleted file mode 100644 index 54fe910..0000000 --- a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/TestModel.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * 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.zest.library.conversion.values; - -import java.time.Duration; -import java.time.Instant; -import java.time.LocalDate; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.List; -import org.apache.zest.api.association.Association; -import org.apache.zest.api.association.ManyAssociation; -import org.apache.zest.api.common.Optional; -import org.apache.zest.api.entity.EntityBuilder; -import org.apache.zest.api.entity.EntityComposite; -import org.apache.zest.api.injection.scope.This; -import org.apache.zest.api.mixin.Mixins; -import org.apache.zest.api.property.Property; -import org.apache.zest.api.unitofwork.UnitOfWork; -import org.apache.zest.api.value.ValueComposite; - -import static java.time.ZoneOffset.UTC; - -/** - * Test Model. - */ -final class TestModel -{ - static PersonEntity createPerson( UnitOfWork uow, String firstName, String lastName, LocalDate birthDate ) - { - EntityBuilder builder = uow.newEntityBuilder( PersonEntity.class, "id:" + firstName ); - PersonState state = builder.instanceFor( PersonState.class ); - state.firstName().set( firstName ); - state.lastName().set( lastName ); - state.dateOfBirth().set( birthDate ); - return builder.newInstance(); - } - - static LocalDate createBirthDate( int year, int month, int day ) - { - return LocalDate.of( year, month, day); - } - - // START SNIPPET: state - public interface PersonState - { - - Property firstName(); - - Property lastName(); - - Property dateOfBirth(); - - } - // END SNIPPET: state - - // START SNIPPET: value - public interface PersonValue - extends PersonState, ValueComposite - { - - @Optional - Property spouse(); - - @Optional - Property> children(); - - } - // END SNIPPET: value - - // START SNIPPET: entity - @Mixins( PersonMixin.class ) - public interface PersonEntity - extends EntityComposite - { - - String firstName(); - - String lastName(); - - Integer age(); - - @Optional - Association spouse(); - - ManyAssociation children(); - - } - // END SNIPPET: entity - - // START SNIPPET: entity - public static abstract class PersonMixin - implements PersonEntity - { - - @This - private PersonState state; - // END SNIPPET: entity - - @Override - public String firstName() - { - return state.firstName().get(); - } - - @Override - public String lastName() - { - return state.lastName().get(); - } - - @Override - public Integer age() - { - Duration age = Duration.between( state.dateOfBirth().get(), Instant.now() ); - return (int) age.toDays()/365; - } - - // START SNIPPET: entity - } - // END SNIPPET: entity - - // START SNIPPET: unqualified - @Unqualified - public interface PersonValue2 - extends ValueComposite - { - - Property firstName(); - - Property lastName(); - - Property dateOfBirth(); - - @Optional - Property spouse(); - - @Optional - Property> children(); - - } - // END SNIPPET: unqualified - - @Unqualified( true ) - public interface PersonValue3 - extends ValueComposite - { - - Property firstName(); - - Property lastName(); - - Property dateOfBirth(); - - @Optional - Property spouse(); - - @Optional - Property> children(); - - } - - @Unqualified( false ) - public interface PersonValue4 - extends ValueComposite - { - - Property firstName(); - - Property lastName(); - - Property dateOfBirth(); - - @Optional - Property spouse(); - - @Optional - Property> children(); - - } - - private TestModel() - { - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/ValueToEntityTest.java ---------------------------------------------------------------------- diff --git a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/ValueToEntityTest.java b/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/ValueToEntityTest.java deleted file mode 100644 index c0f8eea..0000000 --- a/libraries/conversion/src/test/java/org/apache/zest/library/conversion/values/ValueToEntityTest.java +++ /dev/null @@ -1,355 +0,0 @@ -/* - * 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.zest.library.conversion.values; - -import java.time.LocalDate; -import java.util.Arrays; -import java.util.function.Predicate; -import org.junit.Before; -import org.junit.Test; -import org.apache.zest.api.constraint.ConstraintViolationException; -import org.apache.zest.api.unitofwork.UnitOfWork; -import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException; -import org.apache.zest.api.value.ValueBuilder; -import org.apache.zest.bootstrap.AssemblyException; -import org.apache.zest.bootstrap.ModuleAssembly; -import org.apache.zest.functional.Iterables; -import org.apache.zest.library.conversion.values.TestModel.PersonEntity; -import org.apache.zest.library.conversion.values.TestModel.PersonValue; -import org.apache.zest.library.conversion.values.TestModel.PersonValue2; -import org.apache.zest.library.conversion.values.TestModel.PersonValue3; -import org.apache.zest.library.conversion.values.TestModel.PersonValue4; -import org.apache.zest.test.AbstractZestTest; -import org.apache.zest.test.EntityTestAssembler; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.CoreMatchers.nullValue; -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; -import static org.apache.zest.api.usecase.UsecaseBuilder.newUsecase; -import static org.apache.zest.library.conversion.values.TestModel.createBirthDate; -import static org.apache.zest.library.conversion.values.TestModel.createPerson; - -/** - * ValueToEntity Service Test. - */ -public class ValueToEntityTest - extends AbstractZestTest -{ - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - // START SNIPPET: assembly - new ValueToEntityAssembler().assemble( module ); - // END SNIPPET: assembly - new EntityTestAssembler().assemble( module ); - module.entities( PersonEntity.class ); - module.values( PersonValue.class ); - module.values( PersonValue2.class ); - module.values( PersonValue3.class ); - module.values( PersonValue4.class ); - } - - private LocalDate someBirthDate; - private String ednaIdentity; - private String zekeIdentity; - private String fredIdentity; - - @Before - public void setupInitialData() - throws UnitOfWorkCompletionException - { - // See http://en.wikipedia.org/wiki/Template:Flintstones_family_tree - someBirthDate = createBirthDate( 1, 1, 1 ); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "InitialData" ) ) ) - { - ednaIdentity = createPerson( uow, "Edna", "Flintstone", someBirthDate ).identity().get(); - zekeIdentity = createPerson( uow, "Zeke", "Flintstone", someBirthDate ).identity().get(); - fredIdentity = createPerson( uow, "Fred", "Flintstone", someBirthDate ).identity().get(); - uow.complete(); - } - } - - @Test - public void givenQualifiedValueWhenCreatingEntityExpectCorrectEntity() - throws UnitOfWorkCompletionException - { - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue.class ); - builder.prototype().firstName().set( "Ed" ); - builder.prototype().lastName().set( "Flintstone" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - builder.prototype().spouse().set( ednaIdentity ); - builder.prototype().children().set( Arrays.asList( zekeIdentity, fredIdentity ) ); - PersonValue edValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreatingEntityFromQualifiedValue" ) ) ) - { - // START SNIPPET: creation - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - PersonEntity edEntity = conversion.create( PersonEntity.class, edValue ); - // END SNIPPET: creation - assertThat( edEntity.firstName(), equalTo( "Ed" ) ); - assertThat( edEntity.lastName(), equalTo( "Flintstone" ) ); - assertThat( edEntity.spouse().get().firstName(), equalTo( "Edna" ) ); - assertThat( Iterables.count( Iterables.filter( new Predicate() - { - @Override - public boolean test( PersonEntity child ) - { - return "Zeke".equals( child.firstName() ) || "Fred".equals( child.firstName() ); - } - }, edEntity.children() ) ), is( 2L ) ); - - uow.complete(); - } - } - - @Test - public void givenUnqualifiedValueWhenCreatingEntityExpectCorrectEntity() - throws UnitOfWorkCompletionException - { - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue2.class ); - builder.prototype().firstName().set( "Ed" ); - builder.prototype().lastName().set( "Flintstone" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - builder.prototype().spouse().set( ednaIdentity ); - builder.prototype().children().set( Arrays.asList( zekeIdentity, fredIdentity ) ); - PersonValue2 edValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreatingEntityFromUnqualifiedValue" ) ) ) - { - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - - PersonEntity edEntity = conversion.create( PersonEntity.class, "id:Ed", edValue ); - - assertThat( edEntity.identity().get(), equalTo( "id:Ed" ) ); - assertThat( edEntity.firstName(), equalTo( "Ed" ) ); - assertThat( edEntity.lastName(), equalTo( "Flintstone" ) ); - assertThat( edEntity.spouse().get().firstName(), equalTo( "Edna" ) ); - assertThat( Iterables.count( Iterables.filter( new Predicate() - { - @Override - public boolean test( PersonEntity child ) - { - return "Zeke".equals( child.firstName() ) || "Fred".equals( child.firstName() ); - } - }, edEntity.children() ) ), is( 2L ) ); - - uow.complete(); - } - } - - @Test - public void givenUnqualifiedValue2WhenCreatingEntityExpectCorrectEntity() - throws UnitOfWorkCompletionException - { - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue3.class ); - builder.prototype().firstName().set( "Ed" ); - builder.prototype().lastName().set( "Flintstone" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - builder.prototype().spouse().set( ednaIdentity ); - builder.prototype().children().set( Arrays.asList( zekeIdentity, fredIdentity ) ); - PersonValue3 edValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreatingEntityFromUnqualifiedValue" ) ) ) - { - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - - PersonEntity edEntity = conversion.create( PersonEntity.class, "id:Ed", edValue ); - - assertThat( edEntity.identity().get(), equalTo( "id:Ed" ) ); - assertThat( edEntity.firstName(), equalTo( "Ed" ) ); - assertThat( edEntity.lastName(), equalTo( "Flintstone" ) ); - assertThat( edEntity.spouse().get().firstName(), equalTo( "Edna" ) ); - assertThat( Iterables.count( Iterables.filter( new Predicate() - { - @Override - public boolean test( PersonEntity child ) - { - return "Zeke".equals( child.firstName() ) || "Fred".equals( child.firstName() ); - } - }, edEntity.children() ) ), is( 2L ) ); - - uow.complete(); - } - } - - @Test( expected = ConstraintViolationException.class ) - public void givenQualifiedValueNotFromSameInterfaceWhenCreatingEntityExpectNonOptionalException() - throws UnitOfWorkCompletionException - { - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue4.class ); - builder.prototype().firstName().set( "Ed" ); - builder.prototype().lastName().set( "Flintstone" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - builder.prototype().spouse().set( ednaIdentity ); - builder.prototype().children().set( Arrays.asList( zekeIdentity, fredIdentity ) ); - PersonValue4 edValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreatingEntityFromUnqualifiedValue" ) ) ) - { - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - - PersonEntity edEntity = conversion.create( PersonEntity.class, "id:Ed", edValue ); - - uow.complete(); - } - - } - - @Test - public void givenQualifiedValueWhenUpdatingEntityExpectCorrectEntity() - throws UnitOfWorkCompletionException - { - String rickyIdentity; - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreateRickySlaghoopleWithTypo" ) ) ) - { - PersonEntity ricky = createPerson( uow, "Ricky", "Slaghople", someBirthDate ); - ricky.spouse().set( uow.get( PersonEntity.class, ednaIdentity ) ); - ricky.children().add( uow.get( PersonEntity.class, zekeIdentity ) ); - rickyIdentity = ricky.identity().get(); - assertThat( ricky.spouse().get(), notNullValue() ); - assertThat( ricky.children().count(), is( 1 ) ); - uow.complete(); - } - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue.class ); - builder.prototype().firstName().set( "Ricky" ); - builder.prototype().lastName().set( "Slaghoople" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - PersonValue rickyNewStateValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "UpdateRickySlaghoople" ) ) ) - { - PersonEntity rickyEntity = uow.get( PersonEntity.class, rickyIdentity ); - // START SNIPPET: update - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - conversion.update( rickyEntity, rickyNewStateValue ); - // END SNIPPET: update - - assertThat( rickyEntity.lastName(), equalTo( "Slaghoople" ) ); - assertThat( rickyEntity.spouse().get(), nullValue() ); - assertThat( rickyEntity.children().count(), is( 0 ) ); - - uow.complete(); - } - } - - @Test - public void givenUnqualifiedValueWhenUpdatingEntityExpectCorrectEntity() - throws UnitOfWorkCompletionException - { - String rickyIdentity; - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreateRickySlaghoopleWithTypo" ) ) ) - { - PersonEntity ricky = createPerson( uow, "Ricky", "Slaghople", someBirthDate ); - ricky.spouse().set( uow.get( PersonEntity.class, ednaIdentity ) ); - ricky.children().add( uow.get( PersonEntity.class, zekeIdentity ) ); - rickyIdentity = ricky.identity().get(); - assertThat( ricky.spouse().get(), notNullValue() ); - assertThat( ricky.children().count(), is( 1 ) ); - uow.complete(); - } - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue2.class ); - builder.prototype().firstName().set( "Ricky" ); - builder.prototype().lastName().set( "Slaghoople" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - PersonValue2 newStateValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "UpdateRickySlaghoople" ) ) ) - { - PersonEntity ricky = uow.get( PersonEntity.class, rickyIdentity ); - - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - conversion.update( ricky, newStateValue ); - - assertThat( ricky.lastName(), equalTo( "Slaghoople" ) ); - assertThat( ricky.spouse().get(), nullValue() ); - assertThat( ricky.children().count(), is( 0 ) ); - - uow.complete(); - } - } - - @Test - public void givenUnqualifiedValue2WhenUpdatingEntityExpectCorrectEntity() - throws UnitOfWorkCompletionException - { - String rickyIdentity; - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreateRickySlaghoopleWithTypo" ) ) ) - { - PersonEntity ricky = createPerson( uow, "Ricky", "Slaghople", someBirthDate ); - ricky.spouse().set( uow.get( PersonEntity.class, ednaIdentity ) ); - ricky.children().add( uow.get( PersonEntity.class, zekeIdentity ) ); - rickyIdentity = ricky.identity().get(); - assertThat( ricky.spouse().get(), notNullValue() ); - assertThat( ricky.children().count(), is( 1 ) ); - uow.complete(); - } - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue3.class ); - builder.prototype().firstName().set( "Ricky" ); - builder.prototype().lastName().set( "Slaghoople" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - PersonValue3 newStateValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "UpdateRickySlaghoople" ) ) ) - { - PersonEntity ricky = uow.get( PersonEntity.class, rickyIdentity ); - - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - conversion.update( ricky, newStateValue ); - - assertThat( ricky.lastName(), equalTo( "Slaghoople" ) ); - assertThat( ricky.spouse().get(), nullValue() ); - assertThat( ricky.children().count(), is( 0 ) ); - - uow.complete(); - } - } - - @Test - public void givenQualifiedValueNotFromSameInterfaceWhenUpdatingEntityExpectPropsNotUpdated() - throws UnitOfWorkCompletionException - { - String rickyIdentity; - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "CreateRickySlaghoopleWithTypo" ) ) ) - { - PersonEntity ricky = createPerson( uow, "Ricky", "Slaghople", someBirthDate ); - ricky.spouse().set( uow.get( PersonEntity.class, ednaIdentity ) ); - ricky.children().add( uow.get( PersonEntity.class, zekeIdentity ) ); - rickyIdentity = ricky.identity().get(); - assertThat( ricky.spouse().get(), notNullValue() ); - assertThat( ricky.children().count(), is( 1 ) ); - uow.complete(); - } - ValueBuilder builder = valueBuilderFactory.newValueBuilder( PersonValue4.class ); - builder.prototype().firstName().set( "Ricky" ); - builder.prototype().lastName().set( "Slaghoople" ); - builder.prototype().dateOfBirth().set( someBirthDate ); - PersonValue4 newStateValue = builder.newInstance(); - try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( newUsecase( "UpdateRickySlaghoopleWontWork" ) ) ) - { - PersonEntity ricky = uow.get( PersonEntity.class, rickyIdentity ); - - ValueToEntity conversion = serviceFinder.findService( ValueToEntity.class ).get(); - conversion.update( ricky, newStateValue ); - - assertThat( ricky.lastName(), equalTo( "Slaghople" ) ); - assertThat( ricky.spouse().get(), nullValue() ); - assertThat( ricky.children().count(), is( 0 ) ); - - uow.complete(); - } - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/1ead1338/settings.gradle ---------------------------------------------------------------------- diff --git a/settings.gradle b/settings.gradle index 16a0615..058f616 100644 --- a/settings.gradle +++ b/settings.gradle @@ -28,7 +28,6 @@ include 'core:functional', 'libraries:alarm', 'libraries:circuitbreaker', 'libraries:constraints', - 'libraries:conversion', 'libraries:eventsourcing', 'libraries:eventsourcing-jdbm', 'libraries:eventsourcing-rest',