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 EC7E9200C60 for ; Mon, 10 Apr 2017 06:02:51 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id EB21C160BA6; Mon, 10 Apr 2017 04:02:51 +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 3E7AE160BA4 for ; Mon, 10 Apr 2017 06:02:51 +0200 (CEST) Received: (qmail 12474 invoked by uid 500); 10 Apr 2017 04:02:50 -0000 Mailing-List: contact commits-help@polygene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@polygene.apache.org Delivered-To: mailing list commits@polygene.apache.org Received: (qmail 12465 invoked by uid 99); 10 Apr 2017 04:02:50 -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; Mon, 10 Apr 2017 04:02:50 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5106BDFF0F; Mon, 10 Apr 2017 04:02:50 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: niclas@apache.org To: commits@polygene.apache.org Message-Id: <7f74c4e20b7f4de99315fb42f3ebfa83@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: polygene-java git commit: POLYGENE-54 - Adding more tests of new converter feature. Date: Mon, 10 Apr 2017 04:02:50 +0000 (UTC) archived-at: Mon, 10 Apr 2017 04:02:52 -0000 Repository: polygene-java Updated Branches: refs/heads/develop 51c6c27c3 -> 6d8d97ec0 POLYGENE-54 - Adding more tests of new converter feature. Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/6d8d97ec Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/6d8d97ec Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/6d8d97ec Branch: refs/heads/develop Commit: 6d8d97ec06b775caeeb8ae7bf70082ab673f9746 Parents: 51c6c27 Author: niclas Authored: Mon Apr 10 12:01:46 2017 +0800 Committer: niclas Committed: Mon Apr 10 12:01:46 2017 +0800 ---------------------------------------------------------------------- .../api/unitofwork/ToValueConversionTest.java | 48 +++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/6d8d97ec/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 d091745..08751d4 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 @@ -20,6 +20,7 @@ package org.apache.polygene.api.unitofwork; import java.util.Map; +import java.util.Set; import java.util.function.Function; import java.util.stream.Stream; import org.apache.polygene.api.association.Association; @@ -46,6 +47,7 @@ import org.apache.polygene.test.AbstractPolygeneTest; import org.apache.polygene.test.EntityTestAssembler; import org.junit.Test; +import static org.hamcrest.core.AnyOf.anyOf; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.assertThat; @@ -62,39 +64,63 @@ public class ToValueConversionTest } @Test - public void testPropertyConversionToValue() + public void testConversionToValue() throws Exception { - Identity identity = new StringIdentity( "Niclas" ); Usecase usecase = UsecaseBuilder.buildUsecase( "test case" ) .withMetaInfo( new SomeValueConverter() ) .newUsecase(); + SomeType value; try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(usecase) ) { - EntityBuilder builder = uow.newEntityBuilder( SomeType.class, identity ); - builder.instance().name().set( "Niclas" ); - SomeType entity = builder.newInstance(); - SomeType value = uow.toValue( SomeType.class, entity ); + SomeType entity1 = createEntity( uow, new StringIdentity( "Niclas" ) ); + SomeType entity2 = createEntity( uow, new StringIdentity( "Paul" ) ); + SomeType entity3 = createEntity( uow, new StringIdentity( "Jiri" ) ); + SomeType entity4 = createEntity( uow, new StringIdentity( "Kent" ) ); + SomeType entity5 = createEntity( uow, new StringIdentity( "Stan" ) ); + entity1.assoc().set( entity2 ); + entity1.many().add( entity3 ); + entity1.named().put( "kent", entity4 ); + entity1.named().put( "stan", entity5 ); - assertThat( value.name().get(), equalTo( "[Niclas]" ) ); - assertThat( value.identity().get(), equalTo( identity ) ); + value = uow.toValue( SomeType.class, entity1 ); uow.complete(); + + } + try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(usecase) ) + { + assertThat( value.identity().get(), equalTo( new StringIdentity( "Niclas" ) ) ); + assertThat( value.name().get(), equalTo( "[Niclas]" ) ); + + assertThat( uow.toValue( SomeType.class, value.assoc().get()).name().get(), equalTo( "[Paul]" )); + assertThat( uow.toValueList( value.many() ).get(0).name().get(), equalTo( "[Jiri]" )); + assertThat( uow.toValueSet( value.many() ).iterator().next().name().get(), equalTo( "[Jiri]" )); + Set> actual = uow.toValueMap( value.named() ).entrySet(); + assertThat( actual.iterator().next().getKey(), anyOf(equalTo( "stan" ), equalTo( "kent" )) ); + assertThat( actual.iterator().next().getValue().name().get(), anyOf(equalTo( "[Stan]" ), equalTo( "[Kent]" )) ); } } + private SomeType createEntity( UnitOfWork uow, Identity identity ) + { + EntityBuilder builder = uow.newEntityBuilder( SomeType.class, identity ); + builder.instance().name().set( identity.toString() ); + return builder.newInstance(); + } + interface SomeType extends HasIdentity { Property name(); @Optional - Association assoc(); + Association assoc(); @UseDefaults - ManyAssociation many(); + ManyAssociation many(); @UseDefaults - NamedAssociation named(); + NamedAssociation named(); } private static class SomeValueConverter