This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 23001bfb86e09aee20032679338561aa0c478826 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:54:06 2016 +0100 [iso] fix rest tests --- .../services/rest/RestTestMethodResource.java | 2 +- .../rest/service/AbstractServiceRestTest.java | 8 +-- .../topia/binder/data/DataBinderSupport.java | 2 +- .../services/topia/binder/BinderEngineTest.java | 2 +- .../ird/observe/test/ObserveTestConfiguration.java | 57 ++++++---------------- .../ird/observe/test/TestClassResourceSupport.java | 22 +++++++-- .../observe/test/TestMethodResourceSupport.java | 25 +++++++--- .../test/spi/DatabaseServerNameConfiguration.java | 45 +++++++++++++++++ test/src/main/resources/observetest.properties | 1 + 9 files changed, 104 insertions(+), 60 deletions(-) diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java index baaad59..a17640b 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java @@ -68,7 +68,7 @@ public class RestTestMethodResource extends TestMethodResourceSupport<RestTestCl Version modelVersion = ObserveTestConfiguration.getModelVersion(); - dataSourceConfiguration = testClassResource.createDataSourceConfigurationRest(testClass, null, modelVersion, getUrl(), getLogin(), getPassword()); + dataSourceConfiguration = testClassResource.createDataSourceConfigurationRest(testClass, getServerDbName(), modelVersion, getUrl(), getLogin(), getPassword()); checkServerIsAvailable(testClass, methodName); diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java index 6307e28..212f4c9 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java @@ -23,16 +23,17 @@ package fr.ird.observe.services.rest.service; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.rest.RestTestClassResource; -import fr.ird.observe.services.rest.RestTestMethodResource; -import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.rest.RestTestClassResource; +import fr.ird.observe.services.rest.RestTestMethodResource; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.test.ObserveTestConfiguration; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import org.junit.After; import org.junit.Before; @@ -45,6 +46,7 @@ import org.junit.Rule; @DatabaseLoginConfiguration(ObserveTestConfiguration.WEB_LOGIN) @DatabasePasswordConfiguration(ObserveTestConfiguration.WEB_PASSWORD) @DatabaseUrlConfiguration(ObserveTestConfiguration.WEB_URL) +@DatabaseServerNameConfiguration(ObserveTestConfiguration.WEB_DATABASE) public abstract class AbstractServiceRestTest { @ClassRule diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java index 6ac8884..b4ed3bd 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java @@ -197,7 +197,7 @@ public abstract class DataBinderSupport<E extends ObserveDataEntity, D extends D reference.setId(dto.getId()); // reference.setCreateDate(dto.getCreateDate()); -// reference.setVersion(dto.getVersion()); +// reference.setVersion(dto.getTestPropertyAsVersion()); reference.init(definition.getType(), definition.getPropertyNames(), values); diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java index 91035ab..9161480 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java @@ -321,7 +321,7 @@ public class BinderEngineTest extends AbstractServiceTopiaTest { Assert.assertNotNull(dto); Assert.assertEquals(entity.getTopiaId(), dto.getId()); // Assert.assertEquals(entity.getTopiaCreateDate(), dto.getCreateDate()); -// Assert.assertEquals(entity.getTopiaVersion(), dto.getVersion()); +// Assert.assertEquals(entity.getTopiaVersion(), dto.getTestPropertyAsVersion()); E entity2 = dao.forTopiaIdEquals(entity.getTopiaId()).findUnique(); binderEngine.copyDataDtoToEntity(ReferentialLocale.FR, dto, entity2); diff --git a/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java b/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java index b5b79a3..dcbdc1b 100644 --- a/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java +++ b/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java @@ -27,6 +27,7 @@ import fr.ird.observe.test.spi.DatabaseClassifier; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.nuiton.version.Version; @@ -55,6 +56,7 @@ public class ObserveTestConfiguration { public static final String WEB_LOGIN = "observetest.web.login"; public static final String WEB_PASSWORD = "observetest.web.password"; public static final String WEB_URL = "observetest.web.url"; + public static final String WEB_DATABASE = "observetest.web.database"; public static final String OBSTUNA_URL = "observetest.obstuna.url"; public static final String OBSTUNA_LOGIN = "observetest.obstuna.login"; public static final String OBSTUNA_PASSWORD = "observetest.obstuna.password"; @@ -64,26 +66,26 @@ public class ObserveTestConfiguration { public static final String OBSTUNA_REFERENTIEL_LOGIN = "observetest.obstuna.referentiel.login"; public static Version getModelVersion() { - return getVersion(MODEL_VERSION); + return getTestPropertyAsVersion(MODEL_VERSION); } public static Version getPreviousModelVersion() { - return getVersion(PREVIOUS_VERSION); + return getTestPropertyAsVersion(PREVIOUS_VERSION); } public static Version getFirstModelVersion() { - return getVersion(FIRST_VERSION); + return getTestPropertyAsVersion(FIRST_VERSION); } - public static Version getVersion(String propertyName) { + public static Version getTestPropertyAsVersion(String propertyName) { return Versions.valueOf(getTestProperties().getProperty(propertyName)); } - public static String getLogin(String propertyName) { + public static String getTestPropertyAsString(String propertyName) { return getTestProperties().getProperty(propertyName); } - public static URL getUrl(String propertyName) { + public static URL getTestPropertyAsUrl(String propertyName) { String property = null; try { property = getTestProperties().getProperty(propertyName); @@ -93,46 +95,10 @@ public class ObserveTestConfiguration { } } - public static char[] getPassword(String propertyName) { + public static char[] getTestPropertyAsCharArray(String propertyName) { return getTestProperties().getProperty(propertyName).toCharArray(); } -// public static DatabaseNameConfiguration getDatabaseNameConfigurationAnnotation(Method testClassMethod, DatabaseClassifier classifier) { -// -// DatabaseNameConfiguration[] annotations = testClassMethod.getAnnotationsByType(DatabaseNameConfiguration.class); -// -// for (DatabaseNameConfiguration annotation : annotations) { -// if (classifier.equals(annotation.classifier())) { -// return annotation; -// } -// } -// return null; -// } - -// public static DatabaseVersionConfiguration getDatabaseVersionConfigurationAnnotation(Method testClassMethod, DatabaseClassifier classifier) { -// -// DatabaseVersionConfiguration[] annotations = testClassMethod.getAnnotationsByType(DatabaseVersionConfiguration.class); -// -// for (DatabaseVersionConfiguration annotation : annotations) { -// if (classifier.equals(annotation.classifier())) { -// return annotation; -// } -// } -// return null; -// } -// -// public static CopyDatabaseConfiguration getCopyDatabaseConfigurationAnnotation(Method testClassMethod, DatabaseClassifier classifier) { -// -// CopyDatabaseConfiguration[] annotations = testClassMethod.getAnnotationsByType(CopyDatabaseConfiguration.class); -// -// for (CopyDatabaseConfiguration annotation : annotations) { -// if (classifier.equals(annotation.classifier())) { -// return annotation; -// } -// } -// return null; -// } - public static DatabaseUrlConfiguration getDatabaseUrlConfigurationAnnotation(AnnotatedElement annotatedElement) { return getAnnotation(annotatedElement, DatabaseUrlConfiguration.class); @@ -150,6 +116,11 @@ public class ObserveTestConfiguration { return getAnnotation(annotatedElement, DatabasePasswordConfiguration.class); } + public static DatabaseServerNameConfiguration getDatabaseServerNameConfigurationAnnotation(AnnotatedElement annotatedElement) { + + return getAnnotation(annotatedElement, DatabaseServerNameConfiguration.class); + + } public static DatabaseNameConfiguration getDatabaseNameConfigurationAnnotation(AnnotatedElement testClass, DatabaseClassifier classifier) { diff --git a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java index d108ad6..2a0b218 100644 --- a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java +++ b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java @@ -26,6 +26,7 @@ import fr.ird.observe.test.spi.DatabaseClassifier; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.apache.commons.logging.Log; @@ -59,6 +60,7 @@ public abstract class TestClassResourceSupport implements TestRule { private String dbName; private Version dbVersion; private URL url; + private String serverDbName; protected TestClassResourceSupport(DatabaseClassifier classifier) { this.classifier = classifier; @@ -96,6 +98,10 @@ public abstract class TestClassResourceSupport implements TestRule { return classifier; } + public String getServerDbName() { + return serverDbName; + } + @Override public final Statement apply(final Statement base, final Description description) { return new Statement() { @@ -123,12 +129,12 @@ public abstract class TestClassResourceSupport implements TestRule { DatabaseLoginConfiguration databaseLogin = ObserveTestConfiguration.getDatabaseLoginConfigurationAnnotation(testClass); if (databaseLogin != null) { - login = ObserveTestConfiguration.getLogin(databaseLogin.value()); + login = ObserveTestConfiguration.getTestPropertyAsString(databaseLogin.value()); } DatabasePasswordConfiguration databasePassword = ObserveTestConfiguration.getDatabasePasswordConfigurationAnnotation(testClass); if (databasePassword != null) { - password = ObserveTestConfiguration.getPassword(databasePassword.value()); + password = ObserveTestConfiguration.getTestPropertyAsCharArray(databasePassword.value()); } DatabaseNameConfiguration databaseNameConfiguration = ObserveTestConfiguration.getDatabaseNameConfigurationAnnotation(testClass, classifier); @@ -138,14 +144,20 @@ public abstract class TestClassResourceSupport implements TestRule { DatabaseVersionConfiguration databaseVersionConfiguration = ObserveTestConfiguration.getDatabaseVersionConfigurationAnnotation(testClass, classifier); if (databaseVersionConfiguration != null) { - dbVersion = ObserveTestConfiguration.getVersion(databaseVersionConfiguration.value()); + dbVersion = ObserveTestConfiguration.getTestPropertyAsVersion(databaseVersionConfiguration.value()); } - DatabaseUrlConfiguration databaseUrl = ObserveTestConfiguration.getDatabaseUrlConfigurationAnnotation(description.getTestClass()); + DatabaseUrlConfiguration databaseUrl = ObserveTestConfiguration.getDatabaseUrlConfigurationAnnotation(testClass); if (databaseUrl != null) { - url = ObserveTestConfiguration.getUrl(databaseUrl.value()); + url = ObserveTestConfiguration.getTestPropertyAsUrl(databaseUrl.value()); } + DatabaseServerNameConfiguration databaseServerNameConfiguration = ObserveTestConfiguration.getDatabaseServerNameConfigurationAnnotation(testClass); + if (databaseServerNameConfiguration != null) { + serverDbName = ObserveTestConfiguration.getTestPropertyAsString(databaseServerNameConfiguration.value()); + } + + } protected void after(Description description) throws IOException { diff --git a/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java b/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java index bc75eb1..41b0970 100644 --- a/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java +++ b/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java @@ -26,6 +26,7 @@ import com.google.common.base.Strings; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.apache.commons.logging.Log; @@ -61,6 +62,7 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo private Class<?> testClass; private String methodName; private String dbName; + private String serverDbName; private Version dbVersion; protected TestMethodResourceSupport(A testClassResource) { @@ -107,6 +109,10 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo return url; } + public String getServerDbName() { + return serverDbName; + } + protected void before(Description description) throws Throwable { testClass = description.getTestClass(); @@ -127,14 +133,14 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo if (databaseLogin == null) { login = testClassResource.getLogin(); } else { - login = ObserveTestConfiguration.getLogin(databaseLogin.value()); + login = ObserveTestConfiguration.getTestPropertyAsString(databaseLogin.value()); } DatabasePasswordConfiguration databasePassword = ObserveTestConfiguration.getDatabasePasswordConfigurationAnnotation(testClass); if (databasePassword == null) { password = testClassResource.getPassword(); } else { - password = ObserveTestConfiguration.getPassword(databasePassword.value()); + password = ObserveTestConfiguration.getTestPropertyAsCharArray(databasePassword.value()); } testClassMethod = testClass.getMethod(methodName); @@ -150,17 +156,24 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo } DatabaseVersionConfiguration databaseVersionConfiguration = ObserveTestConfiguration.getDatabaseVersionConfigurationAnnotation(testClassMethod, testClassResource.getClassifier()); - if (databaseVersionConfiguration != null) { - dbVersion = ObserveTestConfiguration.getVersion(databaseVersionConfiguration.value()); - } else { + if (databaseVersionConfiguration == null) { dbVersion = testClassResource.getDbVersion(); + } else { + dbVersion = ObserveTestConfiguration.getTestPropertyAsVersion(databaseVersionConfiguration.value()); } DatabaseUrlConfiguration databaseUrl = ObserveTestConfiguration.getDatabaseUrlConfigurationAnnotation(testClassMethod); if (databaseUrl == null) { url = testClassResource.getUrl(); } else { - url = ObserveTestConfiguration.getUrl(databaseUrl.value()); + url = ObserveTestConfiguration.getTestPropertyAsUrl(databaseUrl.value()); + } + + DatabaseServerNameConfiguration databaseServerNameConfiguration = ObserveTestConfiguration.getDatabaseServerNameConfigurationAnnotation(testClassMethod); + if (databaseServerNameConfiguration == null) { + serverDbName = testClassResource.getServerDbName(); + } else { + serverDbName = ObserveTestConfiguration.getTestPropertyAsString(databaseServerNameConfiguration.value()); } } diff --git a/test/src/main/java/fr/ird/observe/test/spi/DatabaseServerNameConfiguration.java b/test/src/main/java/fr/ird/observe/test/spi/DatabaseServerNameConfiguration.java new file mode 100644 index 0000000..400def7 --- /dev/null +++ b/test/src/main/java/fr/ird/observe/test/spi/DatabaseServerNameConfiguration.java @@ -0,0 +1,45 @@ +package fr.ird.observe.test.spi; + +/*- + * #%L + * ObServe :: Test + * %% + * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.test.ObserveTestConfiguration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * To configure server database name of a data source. + * + * Created on 30/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.0 + */ +@Target(value = {ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface DatabaseServerNameConfiguration { + + String value() default ObserveTestConfiguration.WEB_DATABASE; +} diff --git a/test/src/main/resources/observetest.properties b/test/src/main/resources/observetest.properties index 05e0b4b..911b10d 100644 --- a/test/src/main/resources/observetest.properties +++ b/test/src/main/resources/observetest.properties @@ -30,6 +30,7 @@ observetest.h2.password=sa observetest.web.url=http://localhost:8080/observeweb/api/v1 observetest.web.login=admin observetest.web.password=a +observetest.web.database=6 observetest.obstuna.url=jdbc:postgresql://localhost:5432/obstuna observetest.obstuna.login=admin observetest.obstuna.login.technicien=technicien -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.