Skip to content
Snippets Groups Projects
Unverified Commit b321797b authored by Martin Weise's avatar Martin Weise
Browse files

Fixed the integration test# Please enter the commit message for your changes. Lines starting

parent 302f143e
No related branches found
No related tags found
1 merge request!106Dev
...@@ -33,7 +33,7 @@ public class DockerUtil { ...@@ -33,7 +33,7 @@ public class DockerUtil {
.withEnv("MARIADB_USER=mariadb", "MARIADB_PASSWORD=mariadb", "MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=weather") .withEnv("MARIADB_USER=mariadb", "MARIADB_PASSWORD=mariadb", "MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=weather")
.exec(); .exec();
container.setHash(create.getId()); 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 { public void startContainer(Container container) throws InterruptedException {
...@@ -47,7 +47,7 @@ public class DockerUtil { ...@@ -47,7 +47,7 @@ public class DockerUtil {
dockerClient.startContainerCmd(container.getHash()) dockerClient.startContainerCmd(container.getHash())
.exec(); .exec();
Thread.sleep(12 * 1000L); Thread.sleep(12 * 1000L);
log.debug("container {} was started", container.getHash()); log.info("container {} was started", container.getHash());
} }
public void stopContainer(Container container) { public void stopContainer(Container container) {
...@@ -60,7 +60,7 @@ public class DockerUtil { ...@@ -60,7 +60,7 @@ public class DockerUtil {
log.trace("container {} needs to be stopped", container.getHash()); log.trace("container {} needs to be stopped", container.getHash());
dockerClient.stopContainerCmd(container.getHash()) dockerClient.stopContainerCmd(container.getHash())
.exec(); .exec();
log.debug("container {} was stopped", container.getHash()); log.info("container {} was stopped", container.getHash());
} }
public void removeContainer(Container container) { public void removeContainer(Container container) {
...@@ -68,7 +68,7 @@ public class DockerUtil { ...@@ -68,7 +68,7 @@ public class DockerUtil {
log.trace("container {} needs to be removed", container.getHash()); log.trace("container {} needs to be removed", container.getHash());
dockerClient.removeContainerCmd(container.getHash()) dockerClient.removeContainerCmd(container.getHash())
.exec(); .exec();
log.debug("container {} was removed", container.getHash()); log.info("container {} was removed", container.getHash());
} }
} }
...@@ -6,10 +6,7 @@ import at.tuwien.config.DockerUtil; ...@@ -6,10 +6,7 @@ import at.tuwien.config.DockerUtil;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.entities.container.Container; import at.tuwien.entities.container.Container;
import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.container.image.ContainerImage;
import at.tuwien.exception.ContainerAlreadyExistsException; import at.tuwien.exception.*;
import at.tuwien.exception.DockerClientException;
import at.tuwien.exception.ImageNotFoundException;
import at.tuwien.exception.UserNotFoundException;
import at.tuwien.repository.jpa.ContainerRepository; import at.tuwien.repository.jpa.ContainerRepository;
import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.jpa.ImageRepository;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.jpa.UserRepository;
...@@ -29,8 +26,10 @@ import org.springframework.test.annotation.DirtiesContext; ...@@ -29,8 +26,10 @@ import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.security.Principal; import java.security.Principal;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@Log4j2 @Log4j2
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
...@@ -134,11 +133,259 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { ...@@ -134,11 +133,259 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
.build(); .build();
final Principal principal = new BasicUserPrincipal(USER_1_USERNAME); final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
/* mock */
/* test */ /* test */
final Container container = containerService.create(request, principal); final Container container = containerService.create(request, principal);
assertEquals(CONTAINER_1_NAME, container.getName()); assertEquals(CONTAINER_1_NAME, container.getName());
assertEquals(1, userRepository.findAll().size()); 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);
});
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment