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

Added the old tests back

parent 2683767b
No related branches found
No related tags found
1 merge request!106Dev
package at.tuwien.service;
import at.tuwien.BaseUnitTest;
import at.tuwien.api.container.image.ImageCreateDto;
import at.tuwien.config.ReadyConfig;
import at.tuwien.exception.*;
import at.tuwien.repository.jpa.ContainerRepository;
import at.tuwien.repository.jpa.ImageRepository;
import at.tuwien.service.impl.ImageServiceImpl;
import lombok.extern.log4j.Log4j2;
import org.apache.http.auth.BasicUserPrincipal;
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.boot.test.mock.mockito.MockBean;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.transaction.annotation.Transactional;
import java.security.Principal;
import static org.junit.jupiter.api.Assertions.*;
@Log4j2
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class ImageServiceIntegrationTest extends BaseUnitTest {
@MockBean
private ReadyConfig readyConfig;
@Autowired
private ImageServiceImpl imageService;
@Autowired
private ImageRepository imageRepository;
@Autowired
private ContainerRepository containerRepository;
@Transactional
@BeforeEach
public void beforeEach() {
log.debug("save container {}", CONTAINER_1);
containerRepository.save(CONTAINER_1);
}
@Test
public void create_succeeds()
throws ImageAlreadyExistsException, DockerClientException, ImageNotFoundException, UserNotFoundException {
final ImageCreateDto request = ImageCreateDto.builder()
.repository(IMAGE_2_REPOSITORY)
.tag(IMAGE_2_TAG)
.dialect(IMAGE_2_DIALECT)
.driverClass(IMAGE_2_DRIVER)
.jdbcMethod(IMAGE_2_JDBC)
.defaultPort(IMAGE_2_PORT)
.environment(IMAGE_1_ENV_DTO)
.build();
final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
/* test */
imageService.create(request, principal);
}
@Test
public void inspect_notFound_fails() {
/* test */
assertThrows(ImageNotFoundException.class, () -> {
imageService.inspect("abcdefu", "999.999");
});
}
@Test
public void create_notFound_fails() {
final ImageCreateDto request = ImageCreateDto.builder()
.repository("s0m3th1ng_n0t3x1st1ng")
.tag("d3v_h3ll")
.dialect(IMAGE_1_DIALECT)
.driverClass(IMAGE_1_DRIVER)
.jdbcMethod(IMAGE_1_JDBC)
.defaultPort(IMAGE_1_PORT)
.environment(IMAGE_1_ENV_DTO)
.build();
final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
/* test */
assertThrows(ImageNotFoundException.class, () -> {
imageService.create(request, principal);
});
}
@Test
public void create_duplicate_fails() {
final ImageCreateDto request = ImageCreateDto.builder()
.repository(IMAGE_1_REPOSITORY)
.tag(IMAGE_1_TAG)
.defaultPort(IMAGE_1_PORT)
.driverClass(IMAGE_1_DRIVER)
.jdbcMethod(IMAGE_1_JDBC)
.dialect(IMAGE_1_DIALECT)
.environment(IMAGE_1_ENV_DTO)
.build();
final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
/* test */
assertThrows(ImageAlreadyExistsException.class, () -> {
imageService.create(request, principal);
});
}
@Test
public void delete_hasContainer_succeeds() throws ImageNotFoundException, PersistenceException {
/* test */
imageService.delete(IMAGE_1_ID);
assertTrue(imageRepository.findById(IMAGE_1_ID).isEmpty());
assertTrue(containerRepository.findById(CONTAINER_1_ID).isPresent()); /* container should NEVER be deletable in the metadata db */
}
@Test
public void delete_noContainer_succeeds() throws ImageNotFoundException, PersistenceException {
imageRepository.save(IMAGE_1);
/* test */
imageService.delete(IMAGE_1_ID);
assertTrue(imageRepository.findById(IMAGE_1_ID).isEmpty());
}
}
package at.tuwien.service;
import at.tuwien.BaseUnitTest;
import at.tuwien.api.container.image.ImageChangeDto;
import at.tuwien.api.container.image.ImageCreateDto;
import at.tuwien.config.ReadyConfig;
import at.tuwien.entities.container.image.ContainerImage;
import at.tuwien.exception.*;
import at.tuwien.repository.jpa.ImageRepository;
import at.tuwien.service.impl.ImageServiceImpl;
import org.apache.http.auth.BasicUserPrincipal;
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.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import javax.persistence.EntityNotFoundException;
import javax.validation.ConstraintViolationException;
import java.security.Principal;
import java.util.List;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class ImageServiceUnitTest extends BaseUnitTest {
@MockBean
private ReadyConfig readyConfig;
@Autowired
private ImageServiceImpl imageService;
@MockBean
private ImageRepository imageRepository;
@Test
public void getAll_succeeds() {
/* mock */
when(imageRepository.findAll())
.thenReturn(List.of(IMAGE_1));
/* test */
final List<ContainerImage> response = imageService.getAll();
assertEquals(1, response.size());
assertEquals(IMAGE_1_REPOSITORY, response.get(0).getRepository());
assertEquals(IMAGE_1_TAG, response.get(0).getTag());
}
@Test
public void getById_succeeds() throws ImageNotFoundException {
/* mock */
when(imageRepository.findById(IMAGE_1_ID))
.thenReturn(Optional.of(IMAGE_1));
/* test */
final ContainerImage response = imageService.find(IMAGE_1_ID);
assertEquals(IMAGE_1_REPOSITORY, response.getRepository());
assertEquals(IMAGE_1_TAG, response.getTag());
}
@Test
public void getById_notFound_fails() {
/* mock */
when(imageRepository.findById(IMAGE_1_ID))
.thenReturn(Optional.empty());
/* test */
assertThrows(ImageNotFoundException.class, () -> {
imageService.find(IMAGE_1_ID);
});
}
@Test
public void create_duplicate_fails() {
final ImageCreateDto request = ImageCreateDto.builder()
.repository(IMAGE_1_REPOSITORY)
.tag(IMAGE_1_TAG)
.defaultPort(IMAGE_1_PORT)
.environment(IMAGE_1_ENV_DTO)
.build();
final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
/* mock */
when(imageRepository.save(any(ContainerImage.class)))
.thenThrow(ConstraintViolationException.class);
/* test */
assertThrows(ImageAlreadyExistsException.class, () -> {
imageService.create(request, principal);
});
}
@Test
public void update_succeeds() throws ImageNotFoundException, DockerClientException {
final ImageChangeDto request = ImageChangeDto.builder()
.environment(IMAGE_1_ENV_DTO)
.defaultPort(IMAGE_1_PORT)
.build();
/* mock */
when(imageRepository.findById(IMAGE_1_ID))
.thenReturn(Optional.of(IMAGE_1));
when(imageRepository.save(any()))
.thenReturn(IMAGE_1);
/* test */
final ContainerImage response = imageService.update(IMAGE_1_ID, request);
assertEquals(IMAGE_1_REPOSITORY, response.getRepository());
assertEquals(IMAGE_1_TAG, response.getTag());
}
@Test
public void update_port_succeeds() throws ImageNotFoundException, DockerClientException {
final ImageChangeDto request = ImageChangeDto.builder()
.environment(IMAGE_1_ENV_DTO)
.defaultPort(9999)
.build();
/* mock */
when(imageRepository.findById(IMAGE_1_ID))
.thenReturn(Optional.of(IMAGE_1));
when(imageRepository.save(any()))
.thenReturn(IMAGE_1);
/* test */
final ContainerImage response = imageService.update(IMAGE_1_ID, request);
assertEquals(IMAGE_1_REPOSITORY, response.getRepository());
assertEquals(IMAGE_1_TAG, response.getTag());
}
@Test
public void update_notFound_fails() {
final ImageChangeDto request = ImageChangeDto.builder()
.environment(IMAGE_1_ENV_DTO)
.defaultPort(IMAGE_1_PORT)
.build();
/* mock */
when(imageRepository.findById(IMAGE_1_ID))
.thenReturn(Optional.empty());
/* test */
assertThrows(ImageNotFoundException.class, () -> {
imageService.update(IMAGE_1_ID, request);
});
}
@Test
public void delete_succeeds() throws ImageNotFoundException, PersistenceException {
/* mock */
doNothing()
.when(imageRepository)
.deleteById(IMAGE_1_ID);
/* test */
imageService.delete(IMAGE_1_ID);
}
@Test
public void delete_notFound_fails() {
/* mock */
doThrow(EntityNotFoundException.class)
.when(imageRepository)
.deleteById(IMAGE_1_ID);
/* test */
assertThrows(ImageNotFoundException.class, () -> {
imageService.delete(IMAGE_1_ID);
});
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment