You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2016/12/03 11:06:03 UTC
[7/8] zest-java git commit: mongo-entitystore: test using embedded
mongodb process
mongo-entitystore: test using embedded mongodb process
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/d3ae3cdc
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/d3ae3cdc
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/d3ae3cdc
Branch: refs/heads/develop
Commit: d3ae3cdce0a49b5a25b1758ae7e8682e51680969
Parents: de4731b
Author: Paul Merlin <pa...@apache.org>
Authored: Sat Dec 3 11:30:54 2016 +0100
Committer: Paul Merlin <pa...@apache.org>
Committed: Sat Dec 3 11:30:54 2016 +0100
----------------------------------------------------------------------
dependencies.gradle | 2 +
extensions/entitystore-mongodb/build.gradle | 1 +
.../mongodb/EmbedMongoMapEntityStoreTest.java | 92 ++++++++++++++++++++
3 files changed, 95 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/d3ae3cdc/dependencies.gradle
----------------------------------------------------------------------
diff --git a/dependencies.gradle b/dependencies.gradle
index b3c0aa3..b14783e 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -171,6 +171,7 @@ def antVersion = '1.9.7'
def awaitilityVersion = '2.0.0'
def dnsJavaVersion = '2.1.7'
def easyMockVersion = '3.4'
+def embedMongoVersion = '1.50.5'
def h2Version = '1.4.193'
def hamcrestVersion = '1.3'
def junitVersion = '4.12'
@@ -186,6 +187,7 @@ dependencies.libraries << [
derby : "org.apache.derby:derby:$derbyVersion",
dnsjava : "dnsjava:dnsjava:$dnsJavaVersion",
easymock : "org.easymock:easymock:$easyMockVersion",
+ embed_mongo : "de.flapdoodle.embed:de.flapdoodle.embed.mongo:$embedMongoVersion",
h2 : "com.h2database:h2:$h2Version",
hamcrest : [ "org.hamcrest:hamcrest-core:$hamcrestVersion",
"org.hamcrest:hamcrest-library:$hamcrestVersion" ],
http://git-wip-us.apache.org/repos/asf/zest-java/blob/d3ae3cdc/extensions/entitystore-mongodb/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-mongodb/build.gradle b/extensions/entitystore-mongodb/build.gradle
index d7ae1ec..55f77f6 100644
--- a/extensions/entitystore-mongodb/build.gradle
+++ b/extensions/entitystore-mongodb/build.gradle
@@ -31,6 +31,7 @@ dependencies {
testCompile zest.core.testsupport
testCompile zest.extension( 'valueserialization-orgjson' )
+ testCompile libraries.embed_mongo
testRuntime libraries.logback
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/d3ae3cdc/extensions/entitystore-mongodb/src/test/java/org/apache/zest/entitystore/mongodb/EmbedMongoMapEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-mongodb/src/test/java/org/apache/zest/entitystore/mongodb/EmbedMongoMapEntityStoreTest.java b/extensions/entitystore-mongodb/src/test/java/org/apache/zest/entitystore/mongodb/EmbedMongoMapEntityStoreTest.java
new file mode 100644
index 0000000..b528b54
--- /dev/null
+++ b/extensions/entitystore-mongodb/src/test/java/org/apache/zest/entitystore/mongodb/EmbedMongoMapEntityStoreTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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.entitystore.mongodb;
+
+import de.flapdoodle.embed.mongo.MongodExecutable;
+import de.flapdoodle.embed.mongo.MongodStarter;
+import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
+import de.flapdoodle.embed.mongo.config.Net;
+import de.flapdoodle.embed.mongo.distribution.Version;
+import de.flapdoodle.embed.process.runtime.Network;
+import java.io.IOException;
+import org.apache.zest.api.common.Visibility;
+import org.apache.zest.bootstrap.AssemblyException;
+import org.apache.zest.bootstrap.ModuleAssembly;
+import org.apache.zest.entitystore.mongodb.assembly.MongoDBEntityStoreAssembler;
+import org.apache.zest.test.EntityTestAssembler;
+import org.apache.zest.test.entity.AbstractEntityStoreTest;
+import org.apache.zest.test.util.FreePortFinder;
+import org.apache.zest.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+
+public class EmbedMongoMapEntityStoreTest extends AbstractEntityStoreTest
+{
+ private static final MongodStarter MONGO_STARTER = MongodStarter.getDefaultInstance();
+
+ @Rule
+ public TestName testName = new TestName();
+ private static int port;
+ private static MongodExecutable mongod;
+
+
+ @BeforeClass
+ public static void startEmbedMongo() throws IOException
+ {
+ port = FreePortFinder.findFreePortOnLoopback();
+ mongod = MONGO_STARTER.prepare( new MongodConfigBuilder()
+ .version( Version.Main.PRODUCTION )
+ .net( new Net( port, Network.localhostIsIPv6() ) )
+ .build() );
+ mongod.start();
+ }
+
+ @AfterClass
+ public static void stopEmbedMongo()
+ {
+ if( mongod != null )
+ {
+ mongod.stop();
+ }
+ }
+
+ @Override
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ super.assemble( module );
+
+ ModuleAssembly config = module.layer().module( "config" );
+ new EntityTestAssembler().assemble( config );
+
+ new OrgJsonValueSerializationAssembler().assemble( module );
+
+ new MongoDBEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+
+
+ MongoEntityStoreConfiguration mongoConfig = config.forMixin( MongoEntityStoreConfiguration.class )
+ .declareDefaults();
+ mongoConfig.writeConcern().set( MongoEntityStoreConfiguration.WriteConcern.FSYNC_SAFE );
+ mongoConfig.database().set( "zest:test" );
+ mongoConfig.collection().set( testName.getMethodName() );
+ mongoConfig.hostname().set( "localhost" );
+ mongoConfig.port().set( port );
+ }
+}