From 3fea9ab975e55f14c9924baeb1740ef989aa66c0 Mon Sep 17 00:00:00 2001 From: Sascha Frevel <3075075+sfrevel@users.noreply.github.com> Date: Mon, 4 May 2020 09:08:17 +0200 Subject: [PATCH] TSK-1197: readded test case for testing the ordering of the databases H2, Postgress and DB2; remove Db2 10.5 travis job TSK-1197: build Postgres image with german collation --- .travis.yml | 11 +++++++++-- ci/Dockerfile | 3 +++ ci/docker-compose.yml | 9 +++++++++ ci/prepare_db.bat | 12 ++++++++---- ci/prepare_db.sh | 4 ++-- .../pro/taskana/task/internal/TaskServiceImpl.java | 2 +- .../classification/QueryClassificationAccTest.java | 3 +-- 7 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 ci/Dockerfile create mode 100644 ci/docker-compose.yml diff --git a/.travis.yml b/.travis.yml index 0fa6e5ff6..8a58a81f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,6 @@ env: - NODE_VERSION=12.10.0 jobs: - DB=H2 - - DB=DB2_10_5 - DB=DB2_11_1 - DB=POSTGRES_10_4 @@ -53,9 +52,17 @@ jobs: language: node_js node_js: $NODE_VERSION install: skip - env: DB=WEB + env: + - DB=WEB + - DOCKER_COMPOSE_VERSION=1.4.2 script: ci/test.sh "$DB" before_cache: rm -rf "$HOME/.m2/repository/pro/taskana" + before_install: + - sudo rm /usr/local/bin/docker-compose + - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose + - chmod +x docker-compose + - sudo mv docker-compose /usr/local/bin + # We are using the environment variable 'MODULE' to force travis into using a different cache for each build. # See https://docs.travis-ci.com/user/caching/#caches-and-build-matrices for detailed information on diff --git a/ci/Dockerfile b/ci/Dockerfile new file mode 100644 index 000000000..6070c8ace --- /dev/null +++ b/ci/Dockerfile @@ -0,0 +1,3 @@ +FROM postgres:10.4 +RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8 +ENV LANG de_DE.utf8 \ No newline at end of file diff --git a/ci/docker-compose.yml b/ci/docker-compose.yml new file mode 100644 index 000000000..41d77ea99 --- /dev/null +++ b/ci/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3' +services: + taskana-postgres_10_4: + build: . + container_name: taskana-postgres_10_4 + ports: + - 50102:5432 + environment: + - POSTGRES_PASSWORD=postgres \ No newline at end of file diff --git a/ci/prepare_db.bat b/ci/prepare_db.bat index 43b8a6a86..b570af730 100644 --- a/ci/prepare_db.bat +++ b/ci/prepare_db.bat @@ -107,13 +107,17 @@ SET PROP_FILE=%HOMEPATH%\taskanaUnitTest.properties del %TEMP%\temp IF DEFINED CONTAINER_EXISTS ( - ECHO docker start taskana-postgres_10_4 - docker start taskana-postgres_10_4 + REM ECHO docker start taskana-postgres_10_4 + REM docker start taskana-postgres_10_4 + ECHO docker-compose -f %~dp0/docker-compose.yml start taskana-postgres_10_4 + docker-compose -f %~dp0/docker-compose.yml start taskana-postgres_10_4 ) IF NOT DEFINED CONTAINER_EXISTS ( - ECHO docker run -d -p 50102:5432 --name taskana-postgres_10_4 -e POSTGRES_PASSWORD=postgres postgres:10.4 - docker run -d -p 50102:5432 --name taskana-postgres_10_4 -e POSTGRES_PASSWORD=postgres postgres:10.4 + REM ECHO docker run -d -p 50102:5432 --name taskana-postgres_10_4 -e POSTGRES_PASSWORD=postgres postgres:10.4 + REM docker run -d -p 50102:5432 --name taskana-postgres_10_4 -e POSTGRES_PASSWORD=postgres postgres:10.4 + ECHO docker-compose -f %~dp0/docker-compose.yml up -d + docker-compose -f %~dp0/docker-compose.yml up -d ) ECHO jdbcDriver=org.postgresql.Driver> %PROP_FILE% diff --git a/ci/prepare_db.sh b/ci/prepare_db.sh index b66311b9c..fe2d7621f 100755 --- a/ci/prepare_db.sh +++ b/ci/prepare_db.sh @@ -63,9 +63,9 @@ function main() { POSTGRES_10_4) if [[ -z $(docker ps -aq -f name=^/taskana-postgres_10_4$ -f status=running) ]]; then if [[ -z $(docker ps -aq -f name=^/taskana-postgres_10_4$) ]]; then - docker run -d -p 50102:5432 --name taskana-postgres_10_4 -e POSTGRES_PASSWORD=postgres postgres:10.4 + docker-compose -f `dirname $0`/docker-compose.yml up -d else - docker start taskana-postgres_10_4 + docker-compose -f `dirname $0`/docker-compose.yml start taskana-postgres_10_4 fi fi echo 'jdbcDriver=org.postgresql.Driver' >$propFile diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java index 47a23af8d..76bcdf49e 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java @@ -261,7 +261,7 @@ public class TaskServiceImpl implements TaskService { // primary key violation: "UC_EXTERNAL_ID_INDEX_2 ON TASKANA.TASK(EXTERNAL_ID) ... String msg = e.getMessage() != null ? e.getMessage().toLowerCase() : null; if (msg != null - && (msg.contains("violation") || msg.contains("violates")) + && (msg.contains("violation") || msg.contains("violates") || msg.contains("verletzt")) && msg.contains("external_id")) { throw new TaskAlreadyExistException( "Task with external id " + task.getExternalId() + " already exists"); diff --git a/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java b/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java index 8f0c8ca80..0c17e24b5 100644 --- a/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java @@ -17,7 +17,6 @@ import java.util.List; import java.util.Locale; import org.assertj.core.api.Condition; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -504,8 +503,8 @@ class QueryClassificationAccTest extends AbstractAccTest { assertThat(results.get(0).getName()).isEqualTo("Beratungsprotokoll"); } + // This test checks the collation of the used databases H2, Postgres and DB2 11.1 @Test - @Disabled("due to https://taskana.atlassian.net/browse/TSK-1197") void testQueryForOrderByNameAsc() { List results = classificationService.createClassificationQuery().orderByName(ASCENDING).list();