From 7a3b804229466f1c9611c99c4f6ebfb84269aed4 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 1 Jun 2021 07:48:42 +0200
Subject: [PATCH] another attempt in fixing the integration tests, the entities
 seem to suffer from merge conflict

---
 .../java/at/tuwien/BaseIntegrationTest.java   | 105 ------------------
 .../src/test/java/at/tuwien/BaseUnitTest.java |   9 +-
 .../ContainerServiceIntegrationTest.java      |   7 +-
 .../service/ImageServiceIntegrationTest.java  |  20 +---
 .../tuwien/entities/container/Container.java  |   6 +-
 .../container/image/ContainerImage.java       |   4 +-
 .../image/ContainerImageEnvironmentItem.java  |   4 +-
 .../at/tuwien/entities/database/Database.java |   4 +-
 .../tuwien/entities/database/query/Query.java |   4 +-
 .../tuwien/entities/database/table/Table.java |   4 +-
 .../tuwien/entities/database/table/View.java  |   4 +-
 .../database/table/columns/TableColumn.java   |   4 +-
 .../java/at/tuwien/entities/user/User.java    |   4 +-
 13 files changed, 31 insertions(+), 148 deletions(-)
 delete mode 100644 fda-container-service/rest-service/src/test/java/at/tuwien/BaseIntegrationTest.java

diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/BaseIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/BaseIntegrationTest.java
deleted file mode 100644
index 94025ba47a..0000000000
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/BaseIntegrationTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package at.tuwien;
-
-import at.tuwien.entities.container.Container;
-import at.tuwien.entities.container.image.ContainerImage;
-import at.tuwien.entities.container.image.ContainerImageEnvironmentItem;
-import org.springframework.test.context.TestPropertySource;
-
-import java.time.Instant;
-import java.util.List;
-
-import static java.time.temporal.ChronoUnit.DAYS;
-import static java.time.temporal.ChronoUnit.HOURS;
-
-@TestPropertySource(locations = "classpath:application.properties")
-public abstract class BaseIntegrationTest {
-
-    public final Long IMAGE_1_ID = 1L;
-    public final String IMAGE_1_REPOSITORY = "postgres";
-    public final String IMAGE_1_TAG = "13-alpine";
-    public final String IMAGE_1_HASH = "83b40f2726e5";
-    public final Long IMAGE_1_SIZE = 100000L;
-    public final Integer IMAGE_1_PORT = 5432;
-    public final Instant IMAGE_1_BUILT = Instant.now().minus(40, HOURS);
-    public final List<ContainerImageEnvironmentItem> IMAGE_1_ENV = List.of(ContainerImageEnvironmentItem.builder()
-                    .key("POSTGRES_USER")
-                    .value("postgres")
-                    .build(),
-            ContainerImageEnvironmentItem.builder()
-                    .key("POSTGRES_PASSWORD")
-                    .value("postgres")
-                    .build());
-
-    public final Long IMAGE_2_ID = 2L;
-    public final String IMAGE_2_REPOSITORY = "redis";
-    public final String IMAGE_2_TAG = "latest";
-    public final String IMAGE_2_HASH = "f877e80bb9ef";
-    public final Long IMAGE_2_SIZE = 200000L;
-    public final Integer IMAGE_2_PORT = 6379;
-    public final Instant IMAGE_2_BUILT = Instant.now().minus(9, DAYS);
-    public final List<ContainerImageEnvironmentItem> IMAGE_2_ENV = List.of(ContainerImageEnvironmentItem.builder()
-                    .key("POSTGRES_USER")
-                    .value("postgres")
-                    .build(),
-            ContainerImageEnvironmentItem.builder()
-                    .key("POSTGRES_PASSWORD")
-                    .value("postgres")
-                    .build());
-
-    public final ContainerImage IMAGE_1 = ContainerImage.builder()
-            .id(IMAGE_1_ID)
-            .repository(IMAGE_1_REPOSITORY)
-            .tag(IMAGE_1_TAG)
-            .hash(IMAGE_1_HASH)
-            .size(IMAGE_1_SIZE)
-            .compiled(IMAGE_1_BUILT)
-            .environment(IMAGE_1_ENV)
-            .defaultPort(IMAGE_1_PORT)
-            .build();
-
-    public final ContainerImage IMAGE_2 = ContainerImage.builder()
-            .id(IMAGE_2_ID)
-            .repository(IMAGE_2_REPOSITORY)
-            .tag(IMAGE_2_TAG)
-            .hash(IMAGE_2_HASH)
-            .size(IMAGE_2_SIZE)
-            .compiled(IMAGE_2_BUILT)
-            .environment(IMAGE_2_ENV)
-            .defaultPort(IMAGE_2_PORT)
-            .build();
-
-    public final Long CONTAINER_1_ID = 1L;
-    public final String CONTAINER_1_HASH = "deadbeef";
-    public final ContainerImage CONTAINER_1_IMAGE = IMAGE_1;
-    public final String CONTAINER_1_NAME = "u01";
-    public final String CONTAINER_1_INTERNAL_NAME = "u01";
-    public final String CONTAINER_1_IP = "172.28.0.3";
-    public final Instant CONTAINER_1_CREATED = Instant.now().minus(1, HOURS);
-
-    public final Long CONTAINER_2_ID = 2L;
-    public final String CONTAINER_2_HASH = "0ff1ce";
-    public final ContainerImage CONTAINER_2_IMAGE = IMAGE_2;
-    public final String CONTAINER_2_NAME = "t01";
-    public final String CONTAINER_2_INTERNAL_NAME = "u01";
-    public final String CONTAINER_2_IP = "172.28.0.4";
-    public final Instant CONTAINER_2_CREATED = Instant.now().minus(1, HOURS);
-
-    public final Container CONTAINER_1 = Container.builder()
-            .id(CONTAINER_1_ID)
-            .name(CONTAINER_1_NAME)
-            .internalName(CONTAINER_1_INTERNAL_NAME)
-            .image(CONTAINER_1_IMAGE)
-            .hash(CONTAINER_1_HASH)
-            .containerCreated(CONTAINER_1_CREATED)
-            .build();
-
-    public final Container CONTAINER_2 = Container.builder()
-            .id(CONTAINER_2_ID)
-            .name(CONTAINER_2_NAME)
-            .internalName(CONTAINER_2_INTERNAL_NAME)
-            .image(CONTAINER_2_IMAGE)
-            .hash(CONTAINER_2_HASH)
-            .containerCreated(CONTAINER_2_CREATED)
-            .build();
-
-}
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
index b987cad395..6cef06558e 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
@@ -129,7 +129,7 @@ public abstract class BaseUnitTest {
     public final static Instant CONTAINER_1_CREATED = Instant.now().minus(1, HOURS);
 
     public final static Long CONTAINER_2_ID = 2L;
-    public final static String CONTAINER_2_HASH = "0ff1ce";
+    public static String CONTAINER_2_HASH = "0ff1ce";
     public final static ContainerImage CONTAINER_2_IMAGE = IMAGE_2;
     public final static String CONTAINER_2_NAME = "fda-userdb-t01";
     public final static String CONTAINER_2_INTERNALNAME = "fda-userdb-t01";
@@ -200,6 +200,13 @@ public abstract class BaseUnitTest {
             .defaultPort(IMAGE_1_PORT)
             .build();
 
+    public final static ImageCreateDto IMAGE_2_CREATE_DTO = ImageCreateDto.builder()
+            .repository(IMAGE_2_REPOSITORY)
+            .tag(IMAGE_2_TAG)
+            .environment(IMAGE_2_ENV_DTO)
+            .defaultPort(IMAGE_2_PORT)
+            .build();
+
     public final static ContainerCreateRequestDto CONTAINER_1_CREATE_DTO = ContainerCreateRequestDto.builder()
             .repository(IMAGE_1_REPOSITORY)
             .tag(IMAGE_1_TAG)
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index 8af457549a..dd646714d1 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -1,6 +1,6 @@
 package at.tuwien.service;
 
-import at.tuwien.BaseIntegrationTest;
+import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.ContainerCreateRequestDto;
 import at.tuwien.api.container.ContainerStateDto;
 import at.tuwien.entities.container.Container;
@@ -24,13 +24,12 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.Arrays;
 import java.util.Map;
 
-import static at.tuwien.BaseUnitTest.IMAGE_1_ENVIRONMENT;
 import static org.junit.jupiter.api.Assertions.*;
 
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ContainerServiceIntegrationTest extends BaseIntegrationTest {
+public class ContainerServiceIntegrationTest extends BaseUnitTest {
 
     @Autowired
     private ContainerService containerService;
@@ -72,7 +71,7 @@ public class ContainerServiceIntegrationTest extends BaseIntegrationTest {
                         .withPortBindings(PortBinding.parse("5433:" + IMAGE_1_PORT)))
                 .withName(CONTAINER_1_NAME)
                 .withIpv4Address(CONTAINER_1_IP)
-                .withHostName(CONTAINER_1_INTERNAL_NAME)
+                .withHostName(CONTAINER_1_INTERNALNAME)
                 .exec();
         /* start container */
         dockerClient.startContainerCmd(request.getId()).exec();
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
index a757622369..d0f1bfcbc3 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
@@ -1,32 +1,14 @@
 package at.tuwien.service;
 
-import at.tuwien.BaseIntegrationTest;
 import at.tuwien.BaseUnitTest;
-import at.tuwien.api.container.ContainerCreateRequestDto;
-import at.tuwien.api.container.ContainerStateDto;
 import at.tuwien.api.container.image.ImageCreateDto;
-import at.tuwien.entities.container.Container;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import com.github.dockerjava.api.DockerClient;
-import com.github.dockerjava.api.command.CreateContainerResponse;
-import com.github.dockerjava.api.exception.NotModifiedException;
-import com.github.dockerjava.api.model.HostConfig;
-import com.github.dockerjava.api.model.Network;
-import com.github.dockerjava.api.model.PortBinding;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Arrays;
-import java.util.Map;
 
 import static at.tuwien.BaseUnitTest.IMAGE_1_ENV_DTO;
 import static org.junit.jupiter.api.Assertions.*;
@@ -34,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.*;
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
 @ExtendWith(SpringExtension.class)
 @SpringBootTest
-public class ImageServiceIntegrationTest extends BaseIntegrationTest {
+public class ImageServiceIntegrationTest extends BaseUnitTest {
 
     @Autowired
     private ImageService imageService;
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
index 80f0c7e84d..e5650a300c 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
@@ -26,9 +26,9 @@ public class Container {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "container-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "container-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_container_seq")
     )
@@ -55,7 +55,7 @@ public class Container {
     private Integer port;
 
     @ToString.Include
-    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+    @ManyToOne(fetch = FetchType.LAZY) // cascade none
     private ContainerImage image;
 
     @Column(nullable = false, updatable = false)
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
index f37e071e38..2183412b21 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
@@ -25,9 +25,9 @@ public class ContainerImage {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "image-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "image-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_image_seq")
     )
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java
index f4ac0ab0ed..83625889e1 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java
@@ -23,9 +23,9 @@ public class ContainerImageEnvironmentItem {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "environment-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "environment-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_environment_item_seq")
     )
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
index ab606c2bff..51dffe0f23 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
@@ -26,9 +26,9 @@ public class Database {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "database-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "database-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_databases_seq")
     )
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/query/Query.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/query/Query.java
index 670faa19a3..3f0b110765 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/query/Query.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/query/Query.java
@@ -24,9 +24,9 @@ public class Query  {
 	@Id
 	@EqualsAndHashCode.Include
 	@ToString.Include
-	@GeneratedValue(generator = "sequence-per-entity")
+	@GeneratedValue(generator = "query-sequence")
 	@GenericGenerator(
-			name = "sequence-per-entity",
+			name = "query-sequence",
 			strategy = "enhanced-sequence",
 			parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_queries_seq")
 	)
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
index f3b4a38197..f8045a4adc 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
@@ -27,9 +27,9 @@ public class Table {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "table-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "table-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_tables_seq")
     )
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/View.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/View.java
index f184becceb..f3804ec9f0 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/View.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/View.java
@@ -25,9 +25,9 @@ public class View {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "view-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "view-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_view_seq")
     )
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
index 3fe9402abd..c278cbae9f 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
@@ -27,9 +27,9 @@ public class TableColumn {
     @Id
     @EqualsAndHashCode.Include
     @ToString.Include
-    @GeneratedValue(generator = "sequence-per-entity")
+    @GeneratedValue(generator = "column-sequence")
     @GenericGenerator(
-            name = "sequence-per-entity",
+            name = "column-sequence",
             strategy = "enhanced-sequence",
             parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_columns_seq")
     )
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java
index 8a90513f54..5419fde5fe 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java
@@ -26,9 +26,9 @@ public class User {
 	@EqualsAndHashCode.Include
 	@ToString.Include
 	@Column(name = "userid", columnDefinition = "numeric(19, 2)")
-	@GeneratedValue(generator = "sequence-per-entity")
+	@GeneratedValue(generator = "user-sequence")
 	@GenericGenerator(
-			name = "sequence-per-entity",
+			name = "user-sequence",
 			strategy = "enhanced-sequence",
 			parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_user_seq")
 	)
-- 
GitLab