diff --git a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java index c9a29afc155a3e5309aaa6623655c8bd6e0e3715..cb205fe01aab9d46ac9ed6ba4b83277e508deb1c 100644 --- a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java +++ b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java @@ -10,7 +10,6 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableJpaAuditing -@ComponentScan(basePackages = {"at.tuwien"}) @EnableJpaRepositories(basePackages = {"at.tuwien.repositories"}) @EntityScan(basePackages = {"at.tuwien.entities"}) @EnableSwagger2 diff --git a/fda-container-managing-service/rest-service/src/test/java/at/tuwien/integration/BaseIntegrationTest.java b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/integration/BaseIntegrationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..14e0f9ffa035abb1b62e7933b42f83e68615997a --- /dev/null +++ b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/integration/BaseIntegrationTest.java @@ -0,0 +1,8 @@ +package at.tuwien.integration; + +import org.springframework.test.context.TestPropertySource; + +@TestPropertySource(locations = "classpath:application.properties") +public abstract class BaseIntegrationTest { + +} diff --git a/fda-container-managing-service/rest-service/src/test/java/at/tuwien/integration/EndpointTest.java b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/integration/EndpointTest.java new file mode 100644 index 0000000000000000000000000000000000000000..98a0e5313d2d065d19200c136fe1353833ebd624 --- /dev/null +++ b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/integration/EndpointTest.java @@ -0,0 +1,18 @@ +package at.tuwien.integration; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ExtendWith(SpringExtension.class) +@SpringBootTest +@AutoConfigureMockMvc +public class EndpointTest extends BaseIntegrationTest { + + @Test + public void contextLoads() { + // + } +} diff --git a/fda-container-managing-service/rest-service/src/test/java/at/tuwien/mapper/BaseMappingTest.java b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/mapper/BaseMappingTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3bcb0922a4c230f4354c80156477dbf223bb22d7 --- /dev/null +++ b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/mapper/BaseMappingTest.java @@ -0,0 +1,52 @@ +package at.tuwien.mapper; + +import com.github.dockerjava.api.command.InspectContainerResponse; +import com.github.dockerjava.api.model.ContainerNetwork; +import com.github.dockerjava.api.model.NetworkSettings; +import lombok.SneakyThrows; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +import java.lang.reflect.Field; +import java.util.Map; + +public abstract class BaseMappingTest { + + @Configuration + @ComponentScan(basePackages = {"at.tuwien"}) + public static class BaseMappingContext { + } + + final String CONTAINER_ID = "deadbeef"; + final String CONTAINER_NETWORK_IP = "154.234.88.15"; + + @SneakyThrows + final InspectContainerResponse mockInspectResponse() { + final InspectContainerResponse responseC = new InspectContainerResponse(); + final Object response = responseC.getClass().getConstructor().newInstance(); + final Field idField = responseC.getClass().getDeclaredField("id"); + idField.setAccessible(true); + idField.set(response, CONTAINER_ID); + final Field networkSettingsField = responseC.getClass().getDeclaredField("networkSettings"); + networkSettingsField.setAccessible(true); + + // define the network and address + final ContainerNetwork networkC = new ContainerNetwork(); + final Object network = networkC.getClass().getConstructor().newInstance(); + final Field ipField = networkC.getClass().getDeclaredField("ipAddress"); + ipField.setAccessible(true); + ipField.set(network, CONTAINER_NETWORK_IP); + final Map<String, ContainerNetwork> map = Map.of("bridge", (ContainerNetwork) network); + + // add to network settings + final NetworkSettings settingsC = new NetworkSettings(); + final Object settings = settingsC.getClass().getConstructor().newInstance(); + final Field networksField = settingsC.getClass().getDeclaredField("networks"); + networksField.setAccessible(true); + networksField.set(settings, map); + networkSettingsField.set(response, settings); + + return (InspectContainerResponse) response; + } + +} diff --git a/fda-container-managing-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseContainerMappingTest.java b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseContainerMappingTest.java new file mode 100644 index 0000000000000000000000000000000000000000..99fec744b93ee7671c052f8e383b0d74563c5998 --- /dev/null +++ b/fda-container-managing-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseContainerMappingTest.java @@ -0,0 +1,34 @@ +package at.tuwien.mapper; + +import com.github.dockerjava.api.DockerClient; +import com.github.dockerjava.api.command.InspectContainerResponse; +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.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringExtension; + + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.Mockito.when; + +@ExtendWith(SpringExtension.class) +@SpringBootTest +public class DatabaseContainerMappingTest extends BaseMappingTest { + + @Test + public void inspectContainerResponseToDatabaseContainerMappingTest_succeeds() { + final InspectContainerResponse response = mockInspectResponse(); + + assertNotNull(response, "response must not be null"); + assertEquals(CONTAINER_ID, response.getId()); + assertNotNull(response.getNetworkSettings(), "networkSettings must not be null"); + assertNotNull(response.getNetworkSettings().getNetworks(), "networkSettings.networks must not be null"); + assertNotNull(response.getNetworkSettings().getNetworks().get("bridge"), "networkSettings.networks['bridge'] must not be null"); + assertNotNull(response.getNetworkSettings().getNetworks().get("bridge").getIpAddress(), "networkSettings.networks['bridge'].ipAddress must not be null"); + assertEquals(CONTAINER_NETWORK_IP, response.getNetworkSettings().getNetworks().get("bridge").getIpAddress()); + } + +} diff --git a/fda-container-managing-service/rest-service/src/test/resources/application.properties b/fda-container-managing-service/rest-service/src/test/resources/application.properties new file mode 100644 index 0000000000000000000000000000000000000000..3d20b513734282091422cc1f0754e436e542cdab --- /dev/null +++ b/fda-container-managing-service/rest-service/src/test/resources/application.properties @@ -0,0 +1,6 @@ +#Disable discovery +spring.cloud.discovery.enabled = false + +#Disable cloud config and config discovery +spring.cloud.config.discovery.enabled = false +spring.cloud.config.enabled = false \ No newline at end of file diff --git a/fda-container-managing-service/services/src/test/java/at/tuwien/integration/BaseIntegrationTest.java b/fda-container-managing-service/services/src/test/java/at/tuwien/integration/BaseIntegrationTest.java deleted file mode 100644 index 3a7c97b109a27055ec6a66cb2cadf6000c9de7dd..0000000000000000000000000000000000000000 --- a/fda-container-managing-service/services/src/test/java/at/tuwien/integration/BaseIntegrationTest.java +++ /dev/null @@ -1,4 +0,0 @@ -package at.tuwien.integration; - -public class BaseIntegrationTest { -} diff --git a/fda-container-managing-service/services/src/test/java/at/tuwien/mapper/BaseMappingTest.java b/fda-container-managing-service/services/src/test/java/at/tuwien/mapper/BaseMappingTest.java deleted file mode 100644 index 6dbe04b89753474dd4c3beb345f76bcdf7948ca0..0000000000000000000000000000000000000000 --- a/fda-container-managing-service/services/src/test/java/at/tuwien/mapper/BaseMappingTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package at.tuwien.mapper; - -import at.tuwien.entities.DatabaseContainer; -import com.github.dockerjava.api.command.InspectContainerResponse; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@ExtendWith(SpringExtension.class) -public class BaseMappingTest { - - private final DatabaseContainerMapper databaseContainerMapper; - - @Autowired - public BaseMappingTest(DatabaseContainerMapper databaseContainerMapper) { - this.databaseContainerMapper = databaseContainerMapper; - } - - @Configuration - @ComponentScan(basePackages = {"at.tuwien.mapper"}) - public static class BaseMappingContext { - } - - private static final String CONTAINER_ID = "deadbeef"; - - @Test - public void inspectContainerResponseToDatabaseContainer_succeed() throws NoSuchFieldException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { - final InspectContainerResponse data = new InspectContainerResponse(); - final Object instance = data.getClass().getConstructor().newInstance(); - final Field idField = data.getClass().getDeclaredField("id"); - idField.setAccessible(true); - idField.set(instance, CONTAINER_ID); - - final InspectContainerResponse mockResponse = (InspectContainerResponse) instance; - - final DatabaseContainer container = databaseContainerMapper.inspectContainerResponseToDatabaseContainer(mockResponse); - - assertEquals(CONTAINER_ID, container.getContainerId()); - } - -}