Getting more tests working with new actorsystem module.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/50312ba0 Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/50312ba0 Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/50312ba0 Branch: refs/heads/release-2.1.1 Commit: 50312ba058f614dc4cc281243301e2992a5802e5 Parents: ee18950 Author: Dave Johnson <[email protected]> Authored: Tue Jun 21 08:51:38 2016 -0400 Committer: Dave Johnson <[email protected]> Committed: Tue Jun 21 08:51:38 2016 -0400 ---------------------------------------------------------------------- .../persistence/actorsystem/ClientActor.java | 2 +- .../collection/AbstractUniqueValueTest.java | 50 ++++++++++++++++++++ .../collection/EntityCollectionManagerIT.java | 13 +---- .../mvcc/stage/write/WriteUniqueVerifyIT.java | 16 ++----- .../mvcc/stage/write/WriteUniqueVerifyTest.java | 49 ++++++------------- .../uniquevalues/UniqueValuesServiceTest.java | 17 ++----- 6 files changed, 78 insertions(+), 69 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/50312ba0/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClientActor.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClientActor.java b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClientActor.java index c495608..c553a31 100644 --- a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClientActor.java +++ b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClientActor.java @@ -87,7 +87,7 @@ public class ClientActor extends UntypedActor { logger.debug("{} responding with status unknown", name); getSender().tell( new ErrorResponse("ClientActor not ready"), getSender() ); - } if ( message instanceof StatusRequest ) { + } else if ( message instanceof StatusRequest ) { if ( ready ) { getSender().tell( new StatusMessage( name, StatusMessage.Status.READY ), getSender() ); } else { http://git-wip-us.apache.org/repos/asf/usergrid/blob/50312ba0/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/AbstractUniqueValueTest.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/AbstractUniqueValueTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/AbstractUniqueValueTest.java new file mode 100644 index 0000000..041835b --- /dev/null +++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/AbstractUniqueValueTest.java @@ -0,0 +1,50 @@ +/** + * 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.usergrid.persistence.collection; + +import org.apache.usergrid.persistence.actorsystem.ActorSystemManager; +import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValueActor; +import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService; +import java.util.HashMap; +import java.util.Map; + + +public class AbstractUniqueValueTest { + + private static Map<Integer, Boolean> startedAkka = new HashMap<>(); + + + protected synchronized void initAkka( + int port, ActorSystemManager actorSystemManager, UniqueValuesService uniqueValuesService ) { + + if ( startedAkka.get(port) == null ) { + + actorSystemManager.registerRouterProducer( uniqueValuesService ); + actorSystemManager.registerMessageType( UniqueValueActor.Request.class, "/user/uvProxy" ); + actorSystemManager.registerMessageType( UniqueValueActor.Reservation.class, "/user/uvProxy" ); + actorSystemManager.registerMessageType( UniqueValueActor.Cancellation.class, "/user/uvProxy" ); + actorSystemManager.registerMessageType( UniqueValueActor.Confirmation.class, "/user/uvProxy" ); + actorSystemManager.start( "127.0.0.1", port, "us-east" ); + actorSystemManager.waitForRequestActors(); + + startedAkka.put( port, true ); + } + } + +} http://git-wip-us.apache.org/repos/asf/usergrid/blob/50312ba0/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/EntityCollectionManagerIT.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/EntityCollectionManagerIT.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/EntityCollectionManagerIT.java index 6c3cfe7..bb2377a 100644 --- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/EntityCollectionManagerIT.java +++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/EntityCollectionManagerIT.java @@ -64,7 +64,7 @@ import static org.junit.Assert.*; /** @author tnine */ @RunWith( ITRunner.class ) @UseModules( TestCollectionModule.class ) -public class EntityCollectionManagerIT { +public class EntityCollectionManagerIT extends AbstractUniqueValueTest { @Inject private EntityCollectionManagerFactory factory; @@ -88,19 +88,10 @@ public class EntityCollectionManagerIT { @Inject UniqueValuesService uniqueValuesService; - private static AtomicBoolean startedAkka = new AtomicBoolean( false ); @Before public void initAkka() { - if ( !startedAkka.getAndSet( true ) ) { - actorSystemManager.registerRouterProducer( uniqueValuesService ); - actorSystemManager.registerMessageType( UniqueValueActor.Request.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Reservation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Cancellation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Confirmation.class, "/user/uvProxy" ); - actorSystemManager.start( "127.0.0.1", 2554, "us-east" ); - actorSystemManager.waitForRequestActors(); - } + initAkka( 2555, actorSystemManager, uniqueValuesService ); } http://git-wip-us.apache.org/repos/asf/usergrid/blob/50312ba0/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyIT.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyIT.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyIT.java index 9e29f44..ccae9be 100644 --- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyIT.java +++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyIT.java @@ -19,6 +19,7 @@ package org.apache.usergrid.persistence.collection.mvcc.stage.write; import org.apache.usergrid.persistence.actorsystem.ActorSystemManager; +import org.apache.usergrid.persistence.collection.AbstractUniqueValueTest; import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValueActor; import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService; import org.junit.Before; @@ -57,7 +58,7 @@ import static org.junit.Assert.fail; */ @RunWith( ITRunner.class ) @UseModules( TestCollectionModule.class ) -public class WriteUniqueVerifyIT { +public class WriteUniqueVerifyIT extends AbstractUniqueValueTest { @Inject private EntityCollectionManagerFactory factory; @@ -78,21 +79,14 @@ public class WriteUniqueVerifyIT { @Inject UniqueValuesService uniqueValuesService; - private static AtomicBoolean startedAkka = new AtomicBoolean( false ); @Before public void initAkka() { - if ( !startedAkka.getAndSet( true ) ) { - actorSystemManager.registerRouterProducer( uniqueValuesService ); - actorSystemManager.registerMessageType( UniqueValueActor.Request.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Reservation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Cancellation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Confirmation.class, "/user/uvProxy" ); - actorSystemManager.start( "127.0.0.1", 2554, "us-east" ); - actorSystemManager.waitForRequestActors(); - } + // each test class needs unique port number + initAkka( 2551, actorSystemManager, uniqueValuesService ); } + @Test public void testConflict() { http://git-wip-us.apache.org/repos/asf/usergrid/blob/50312ba0/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyTest.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyTest.java index 6daef08..635e262 100644 --- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyTest.java +++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerifyTest.java @@ -18,48 +18,38 @@ package org.apache.usergrid.persistence.collection.mvcc.stage.write; +import com.google.inject.Inject; +import com.netflix.astyanax.Keyspace; +import com.netflix.astyanax.MutationBatch; +import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; import org.apache.usergrid.persistence.actorsystem.ActorSystemManager; -import org.apache.usergrid.persistence.collection.EntityCollectionManager; +import org.apache.usergrid.persistence.collection.AbstractUniqueValueTest; import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory; -import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValueActor; -import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService; -import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl; -import org.apache.usergrid.persistence.model.entity.SimpleId; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - import org.apache.usergrid.persistence.collection.MvccEntity; import org.apache.usergrid.persistence.collection.guice.TestCollectionModule; import org.apache.usergrid.persistence.collection.mvcc.stage.CollectionIoEvent; import org.apache.usergrid.persistence.collection.serialization.SerializationFig; import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy; +import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService; import org.apache.usergrid.persistence.core.astyanax.CassandraConfig; import org.apache.usergrid.persistence.core.guice.MigrationManagerRule; import org.apache.usergrid.persistence.core.scope.ApplicationScope; import org.apache.usergrid.persistence.core.test.ITRunner; import org.apache.usergrid.persistence.core.test.UseModules; import org.apache.usergrid.persistence.model.entity.Entity; - -import com.google.inject.Inject; -import com.netflix.astyanax.Keyspace; -import com.netflix.astyanax.MutationBatch; -import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; - -import java.util.concurrent.atomic.AtomicBoolean; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; import static org.apache.usergrid.persistence.collection.mvcc.stage.TestEntityGenerator.fromEntity; import static org.apache.usergrid.persistence.collection.mvcc.stage.TestEntityGenerator.generateEntity; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; @RunWith( ITRunner.class ) @UseModules( TestCollectionModule.class ) -public class WriteUniqueVerifyTest { +public class WriteUniqueVerifyTest extends AbstractUniqueValueTest { @Inject private EntityCollectionManagerFactory factory; @@ -84,19 +74,10 @@ public class WriteUniqueVerifyTest { UniqueValuesService uniqueValuesService; - private static AtomicBoolean startedAkka = new AtomicBoolean( false ); - @Before public void initAkka() { - if ( !startedAkka.getAndSet( true ) ) { - actorSystemManager.registerRouterProducer( uniqueValuesService ); - actorSystemManager.registerMessageType( UniqueValueActor.Request.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Reservation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Cancellation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Confirmation.class, "/user/uvProxy" ); - actorSystemManager.start( "127.0.0.1", 2554, "us-east" ); - actorSystemManager.waitForRequestActors(); - } + // each test class needs unique port number + initAkka( 2552, actorSystemManager, uniqueValuesService ); } @@ -119,7 +100,7 @@ public class WriteUniqueVerifyTest { newStage.call( new CollectionIoEvent<>( collectionScope, mvccEntity ) ) ; - //if we get here, it's a success. We want to test no exceptions are thrown + // if we get here, it's a success. We want to test no exceptions are thrown verify(batch, never()).execute(); } http://git-wip-us.apache.org/repos/asf/usergrid/blob/50312ba0/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java index 8db582e..3cba9c8 100644 --- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java +++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java @@ -24,6 +24,7 @@ import com.google.common.collect.Multimaps; import com.google.inject.Inject; import org.apache.usergrid.persistence.actorsystem.ActorSystemFig; import org.apache.usergrid.persistence.actorsystem.ActorSystemManager; +import org.apache.usergrid.persistence.collection.AbstractUniqueValueTest; import org.apache.usergrid.persistence.collection.EntityCollectionManager; import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory; import org.apache.usergrid.persistence.collection.exception.WriteUniqueVerifyException; @@ -58,7 +59,7 @@ import java.util.concurrent.atomic.AtomicInteger; */ @RunWith( ITRunner.class ) @UseModules( TestCollectionModule.class ) -public class UniqueValuesServiceTest { +public class UniqueValuesServiceTest extends AbstractUniqueValueTest { private static final Logger logger = LoggerFactory.getLogger( UniqueValuesServiceTest.class ); @Inject @@ -77,24 +78,16 @@ public class UniqueValuesServiceTest { @Inject UniqueValuesService uniqueValuesService; - private static AtomicBoolean startedAkka = new AtomicBoolean( false ); int numThreads = 6; int poolSize = 5; - int numUsers = 1; + int numUsers = 100; @Before public void initAkka() { - if ( !startedAkka.getAndSet( true ) ) { - actorSystemManager.registerRouterProducer( uniqueValuesService ); - actorSystemManager.registerMessageType( UniqueValueActor.Request.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Reservation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Cancellation.class, "/user/uvProxy" ); - actorSystemManager.registerMessageType( UniqueValueActor.Confirmation.class, "/user/uvProxy" ); - actorSystemManager.start( "127.0.0.1", 2554, "us-east" ); - actorSystemManager.waitForRequestActors(); - } + // each test class needs unique port number + initAkka( 2553, actorSystemManager, uniqueValuesService ); }
