diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/config/DockerUtil.java b/fda-container-service/rest-service/src/test/java/at/tuwien/config/DockerUtil.java
index 3d2d8fe81e3b2d188e8709cd38950bb7f70fc6aa..30567feaf2bebd34f3158de5244517623625c5f6 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/config/DockerUtil.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/config/DockerUtil.java
@@ -33,7 +33,7 @@ public class DockerUtil {
                 .withEnv("MARIADB_USER=mariadb", "MARIADB_PASSWORD=mariadb", "MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=weather")
                 .exec();
         container.setHash(create.getId());
-        log.trace("container {} needs to be started", container.getHash());
+        log.info("container {} needs to be started", container.getHash());
     }
 
     public void startContainer(Container container) throws InterruptedException {
@@ -47,7 +47,7 @@ public class DockerUtil {
         dockerClient.startContainerCmd(container.getHash())
                 .exec();
         Thread.sleep(12 * 1000L);
-        log.debug("container {} was started", container.getHash());
+        log.info("container {} was started", container.getHash());
     }
 
     public void stopContainer(Container container) {
@@ -60,7 +60,7 @@ public class DockerUtil {
         log.trace("container {} needs to be stopped", container.getHash());
         dockerClient.stopContainerCmd(container.getHash())
                 .exec();
-        log.debug("container {} was stopped", container.getHash());
+        log.info("container {} was stopped", container.getHash());
     }
 
     public void removeContainer(Container container) {
@@ -68,7 +68,7 @@ public class DockerUtil {
         log.trace("container {} needs to be removed", container.getHash());
         dockerClient.removeContainerCmd(container.getHash())
                 .exec();
-        log.debug("container {} was removed", container.getHash());
+        log.info("container {} was removed", container.getHash());
     }
 
 }
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 f8ca6a0891f6135831e2a913a814ad541fef6515..2c7297c3583502f59f99f668c45fd9655f65ad43 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
@@ -6,10 +6,7 @@ import at.tuwien.config.DockerUtil;
 import at.tuwien.config.ReadyConfig;
 import at.tuwien.entities.container.Container;
 import at.tuwien.entities.container.image.ContainerImage;
-import at.tuwien.exception.ContainerAlreadyExistsException;
-import at.tuwien.exception.DockerClientException;
-import at.tuwien.exception.ImageNotFoundException;
-import at.tuwien.exception.UserNotFoundException;
+import at.tuwien.exception.*;
 import at.tuwien.repository.jpa.ContainerRepository;
 import at.tuwien.repository.jpa.ImageRepository;
 import at.tuwien.repository.jpa.UserRepository;
@@ -29,8 +26,10 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.security.Principal;
+import java.util.List;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 @Log4j2
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
@@ -134,11 +133,259 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
                 .build();
         final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
 
-        /* mock */
-
         /* test */
         final Container container = containerService.create(request, principal);
         assertEquals(CONTAINER_1_NAME, container.getName());
         assertEquals(1, userRepository.findAll().size());
     }
+
+    @Test
+    public void create_conflictingNames_fails() {
+        final ContainerCreateRequestDto request = ContainerCreateRequestDto.builder()
+                .repository(IMAGE_1_REPOSITORY)
+                .tag(IMAGE_1_TAG)
+                .name(CONTAINER_1_NAME)
+                .build();
+        final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
+
+        /* mock */
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(ContainerAlreadyExistsException.class, () -> {
+            containerService.create(request, principal);
+        });
+    }
+
+    @Test
+    public void remove_alreadyRemoved_fails() {
+
+        /* test */
+        assertThrows(ContainerNotFoundException.class, () -> {
+            containerService.remove(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void create_notFound_fails() {
+        final ContainerCreateRequestDto request = ContainerCreateRequestDto.builder()
+                .repository(IMAGE_2_REPOSITORY)
+                .tag(IMAGE_2_TAG)
+                .name(CONTAINER_3_NAME)
+                .build();
+        final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
+
+        /* test */
+        assertThrows(ImageNotFoundException.class, () -> {
+            containerService.create(request, principal);
+        });
+    }
+
+    @Test
+    public void findById_notFound_fails() {
+
+        /* test */
+        assertThrows(ContainerNotFoundException.class, () -> {
+            containerService.find(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_start_succeeds() throws DockerClientException, ContainerNotFoundException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        containerService.start(CONTAINER_1_ID);
+    }
+
+    @Test
+    public void change_stop_succeeds() throws DockerClientException, InterruptedException, ContainerNotFoundException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        dockerUtil.startContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        containerService.stop(CONTAINER_1_ID);
+    }
+
+    @Test
+    public void change_startSavedButNotFound_fails() {
+
+        /* mock */
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.start(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_removeSavedButNotFound_fails() {
+
+        /* mock */
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.remove(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void getAll_succeeds() {
+
+        /* mock */
+        containerRepository.save(CONTAINER_1);
+        containerRepository.save(CONTAINER_2);
+
+        /* test */
+        final List<Container> response = containerService.getAll();
+        assertEquals(2, response.size());
+    }
+
+    @Test
+    public void remove_succeeds() throws DockerClientException, ContainerStillRunningException, ContainerNotFoundException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        dockerUtil.stopContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        containerService.remove(CONTAINER_1_ID);
+    }
+
+    @Test
+    public void remove_notFound_fails() {
+
+        /* test */
+        assertThrows(ContainerNotFoundException.class, () -> {
+            containerService.remove(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void remove_stillRunning_fails() throws InterruptedException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        dockerUtil.startContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(ContainerStillRunningException.class, () -> {
+            containerService.remove(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_alreadyRunning_fails() throws InterruptedException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        dockerUtil.startContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.start(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_startNotFound_fails() {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+
+        /* test */
+        assertThrows(ContainerNotFoundException.class, () -> {
+            containerService.start(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_alreadyStopped_fails() throws InterruptedException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        dockerUtil.startContainer(CONTAINER_1);
+        dockerUtil.stopContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.stop(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_stopNeverStarted_fails() {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.stop(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void change_stopSavedButNotFound_fails() {
+
+        /* mock */
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.stop(CONTAINER_1_ID);
+        });
+    }
+
+    @Test
+    public void inspect_succeeds() throws InterruptedException, DockerClientException, ContainerNotFoundException,
+            ContainerNotRunningException {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        dockerUtil.startContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        final Container response = containerService.inspect(CONTAINER_1_ID);
+        assertEquals(CONTAINER_1_ID, response.getId());
+        assertEquals(CONTAINER_1_NAME, response.getName());
+        assertEquals(CONTAINER_1_INTERNALNAME, response.getInternalName());
+        assertEquals(CONTAINER_1_IP, response.getIpAddress());
+    }
+
+    @Test
+    public void inspect_notFound_fails() {
+
+        /* test */
+        assertThrows(ContainerNotFoundException.class, () -> {
+            containerService.inspect(CONTAINER_2_ID);
+        });
+    }
+
+    @Test
+    public void inspect_notRunning_fails() {
+
+        /* mock */
+        dockerUtil.createContainer(CONTAINER_1);
+        containerRepository.save(CONTAINER_1);
+
+        /* test */
+        assertThrows(ContainerNotRunningException.class, () -> {
+            containerService.inspect(CONTAINER_1_ID);
+        });
+    }
 }