Compare commits

...

7 Commits

Author SHA1 Message Date
changhyuns
7606a65413 refactor: set ddl-auto: validate 2022-07-26 20:56:09 +09:00
changhyuns
2d0832b7b2 fix: 하단 공백 추가 2022-07-26 12:55:11 +09:00
changhyuns
f5555000bd add: redis host, port 2022-07-26 02:31:16 +09:00
changhyuns
f59402b8b1 add: Dockerfile 2022-07-26 02:26:34 +09:00
changhyuns
d2a1cecd1a add: application-prod.yml 2022-07-26 02:23:59 +09:00
changhyuns
3136ffa6fe add: pkcs12 ssl key 2022-07-26 01:23:46 +09:00
손창현
42a00d20d0 feat: MovieTimeServiceTest - test registering movie time (#83) 2022-07-20 01:16:28 +09:00
5 changed files with 127 additions and 2 deletions

12
server/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM openjdk:11-jre-slim
ENV APP_HOME=/usr/app/
WORKDIR $APP_HOME
COPY build/libs/server-0.0.1-SNAPSHOT.jar application.jar
EXPOSE 8443
EXPOSE 8080
CMD ["java", "-jar", "application.jar"]

View File

@@ -0,0 +1,30 @@
server:
port: 8443
address: 0.0.0.0
http:
port: 8080
ssl:
key-store: classpath:keystore/ticketing.p12
key-store-password: ENC(OMvGcpZLpggFTiGNkqNe66Zq/SmJXF6o)
key-store-type: PKCS12
spring:
datasource:
url: jdbc:mysql://ticketing-db/ticketing?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: ENC(LowN1n4w0Ep/DqLD8+q5Bq6AXM4b8e3V)
password: ENC(OMvGcpZLpggFTiGNkqNe66Zq/SmJXF6o)
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
properties:
hibernate:
show_sql: true
format_sql: true
hibernate:
ddl-auto: validate
redis:
host: 172.18.0.3
port: 6379

Binary file not shown.

View File

@@ -4,7 +4,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.when;
import com.ticketing.server.global.exception.TicketingException;

View File

@@ -1,15 +1,23 @@
package com.ticketing.server.movie.service;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.when;
import static org.mockito.ArgumentMatchers.any;
import com.ticketing.server.global.exception.TicketingException;
import com.ticketing.server.movie.domain.Movie;
import com.ticketing.server.movie.domain.MovieTime;
import com.ticketing.server.movie.domain.Theater;
import com.ticketing.server.movie.domain.repository.MovieRepository;
import com.ticketing.server.movie.domain.repository.MovieTimeRepository;
import com.ticketing.server.movie.domain.repository.TheaterRepository;
import com.ticketing.server.movie.service.dto.MovieTimeDTO;
import com.ticketing.server.movie.service.dto.MovieTimeRegisterDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieTimeDTO;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
@@ -27,11 +35,15 @@ import org.mockito.junit.jupiter.MockitoExtension;
public class MovieTimeServiceImplTest {
String title = "범죄도시2";
LocalDateTime startAt = LocalDateTime.now();
List<MovieTime> movieTimes = new ArrayList<>();
@Mock
MovieRepository movieRepository;
@Mock
TheaterRepository theaterRepository;
@Mock
MovieTimeRepository movieTimeRepository;
@@ -39,7 +51,7 @@ public class MovieTimeServiceImplTest {
MovieTimeServiceImpl movieTimeService;
@Test
@DisplayName("MovieTime Service Test - get empty list when there are no valid movie times")
@DisplayName("MovieTime Service Test - get empty list when there is no valid movie time")
void shouldGetEmptyList() {
// given
Movie movie = new Movie(title, 106L);
@@ -82,4 +94,76 @@ public class MovieTimeServiceImplTest {
assertTrue(!movieTimeDtos.isEmpty());
}
@Test
@DisplayName("MovieTime Service Test - register movie time")
void shouldAbleToRegisterMovieTime() {
// given
Movie movie = new Movie(title, 100L);
Theater theater = new Theater(1);
MovieTime movieTime = new MovieTime(movie, theater, 1, startAt);
when(movieRepository.findByIdAndDeletedAtNull(anyLong()))
.thenReturn(Optional.of(movie));
when(theaterRepository.findByTheaterNumber(anyInt()))
.thenReturn(Optional.of(theater));
when(movieTimeRepository.findByMovieAndTheaterAndRoundAndDeletedAtNull(any(), any(), anyInt()))
.thenReturn(Optional.empty());
when(movieTimeRepository.save(any()))
.thenReturn(movieTime);
// when
RegisteredMovieTimeDTO registeredMovieTimeDto =
movieTimeService.registerMovieTime(
new MovieTimeRegisterDTO(1L, 1, 1, startAt)
);
// then
assertThat(registeredMovieTimeDto).isNotNull();
assertTrue(registeredMovieTimeDto.getTheaterNumber() == 1);
assertTrue(registeredMovieTimeDto.getStartAt() == startAt);
assertTrue(registeredMovieTimeDto.getRound() == 1);
}
@Test
@DisplayName("MovieTime Service Test - register movie time when there is same movie time already")
void shouldThrowExceptionWhenRegisteringDuplicateMovieTime() {
// given
Movie movie = new Movie(title, 100L);
Theater theater = new Theater(1);
MovieTime movieTime = new MovieTime(movie, theater, 1, startAt);
MovieTimeRegisterDTO movieTimeRegisterDto = new MovieTimeRegisterDTO(1L, 1, 1, startAt);
when(movieRepository.findByIdAndDeletedAtNull(anyLong()))
.thenReturn(Optional.of(movie));
when(theaterRepository.findByTheaterNumber(anyInt()))
.thenReturn(Optional.of(theater));
when(movieTimeRepository.findByMovieAndTheaterAndRoundAndDeletedAtNull(any(), any(), anyInt()))
.thenReturn(Optional.of(movieTime));
// when
// then
assertThatThrownBy(() -> movieTimeService.registerMovieTime(movieTimeRegisterDto))
.isInstanceOf(TicketingException.class);
}
@Test
@DisplayName("MovieTime Service Test - register movie time when there is no such movie")
void shouldThrowExceptionWhenRegisteringMovieTimeWithNoSuchMovie() {
// given
Theater theater = new Theater(1);
MovieTimeRegisterDTO movieTimeRegisterDto = new MovieTimeRegisterDTO(1L, 1, 1, startAt);
when(movieRepository.findByIdAndDeletedAtNull(1L))
.thenReturn(Optional.empty());
// when
// then
assertThatThrownBy(() -> movieTimeService.registerMovieTime(movieTimeRegisterDto))
.isInstanceOf(TicketingException.class);
}
}