From 12e42f706758022292e7e2e5f133b4f2f015bb94 Mon Sep 17 00:00:00 2001 From: sweetykr7 Date: Sat, 1 Mar 2025 19:50:15 +0900 Subject: [PATCH 1/3] chore(board): remove non required code in driving adapter code --- .../board/adapter/driving/web/BoardQueryApiTest.kt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt b/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt index 484360d..94867dd 100644 --- a/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt +++ b/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt @@ -107,11 +107,6 @@ class BoardQueryApiTest( ) -> Page beforeSpec { - val objectMapper = ObjectMapper().apply { - registerModule(JavaTimeModule()) - setSerializationInclusion(JsonInclude.Include.NON_NULL) - } - boardReadSummaryModelPage = { boardList, pageable, boardStatus -> val filteredBoards = boardList .takeIf { it.isNotEmpty() } @@ -137,9 +132,6 @@ class BoardQueryApiTest( ) } - val jsonResult = objectMapper.writeValueAsString(boardDetailWithNull) - val nonNullResponse = objectMapper.readValue(jsonResult, BoardDetail::class.java) - `when`(boardReadUseCase.getBoard(1L)).thenAnswer { boardDetail } `when`(boardReadUseCase.getBoard(2L)).thenAnswer { boardDetailWithNull } `when`(boardReadUseCase.getBoard(argThat { it != 1L && it != 2L })).thenThrow(ResponseStatusException(HttpStatus.NOT_FOUND)) @@ -154,7 +146,7 @@ class BoardQueryApiTest( boardReadSummaryModelPage(boardList, pageable, statuses) } `when`(boardDtoMapper.toDtoDetail(boardDetail)).thenReturn(BoardDetailResponse(boardDetail)) - `when`(boardDtoMapper.toDtoDetail(boardDetailWithNull)).thenReturn(BoardDetailResponse(nonNullResponse)) + `when`(boardDtoMapper.toDtoDetail(boardDetailWithNull)).thenReturn(BoardDetailResponse(boardDetailWithNull)) } }) { @TestConfiguration From 3ce9b1b54b3c4e12a47faa29229309c02a34ef2c Mon Sep 17 00:00:00 2001 From: sweetykr7 Date: Sat, 1 Mar 2025 20:13:43 +0900 Subject: [PATCH 2/3] chore(board): export code related with jackson mapper config in driving adapter test code --- .../adapter/driving/web/BoardQueryApiTest.kt | 20 ++++------------ .../nettee/core/config/JacksonTestConfig.kt | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 src/test/kotlin/me/nettee/core/config/JacksonTestConfig.kt diff --git a/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt b/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt index 94867dd..5c99e24 100644 --- a/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt +++ b/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt @@ -11,6 +11,7 @@ import me.nettee.board.application.model.BoardQueryModels.BoardSummary import me.nettee.board.application.model.BoardQueryModels.BoardDetail import me.nettee.board.application.usecase.BoardReadByStatusesUseCase import me.nettee.board.application.usecase.BoardReadUseCase +import me.nettee.core.config.JacksonTestConfig import org.junit.jupiter.api.extension.ExtendWith import org.mockito.ArgumentMatchers.any import org.mockito.ArgumentMatchers.argThat @@ -19,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest import org.springframework.boot.test.context.TestConfiguration import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Import import org.springframework.data.domain.Page import org.springframework.data.domain.PageImpl import org.springframework.data.domain.Pageable @@ -35,6 +37,7 @@ import java.time.Instant @WebMvcTest(BoardQueryApi::class) @ExtendWith(SpringExtension::class) +@Import(JacksonTestConfig::class) class BoardQueryApiTest( @MockitoBean private val boardReadUseCase: BoardReadUseCase, @MockitoBean private val boardReadByStatusesUseCase: BoardReadByStatusesUseCase, @@ -148,19 +151,4 @@ class BoardQueryApiTest( `when`(boardDtoMapper.toDtoDetail(boardDetail)).thenReturn(BoardDetailResponse(boardDetail)) `when`(boardDtoMapper.toDtoDetail(boardDetailWithNull)).thenReturn(BoardDetailResponse(boardDetailWithNull)) } -}) { - @TestConfiguration - class JacksonTestConfig { - @Bean - fun objectMapper(): ObjectMapper { - return ObjectMapper() - .registerModule(JavaTimeModule()) - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - } - - @Bean - fun mappingJackson2HttpMessageConverter(objectMapper: ObjectMapper): MappingJackson2HttpMessageConverter { - return MappingJackson2HttpMessageConverter(objectMapper) - } - } -} +}) diff --git a/src/test/kotlin/me/nettee/core/config/JacksonTestConfig.kt b/src/test/kotlin/me/nettee/core/config/JacksonTestConfig.kt new file mode 100644 index 0000000..d603446 --- /dev/null +++ b/src/test/kotlin/me/nettee/core/config/JacksonTestConfig.kt @@ -0,0 +1,23 @@ +package me.nettee.core.config + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter + +@TestConfiguration +class JacksonTestConfig { + @Bean + fun objectMapper(): ObjectMapper { + return ObjectMapper() + .registerModule(JavaTimeModule()) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + } + + @Bean + fun mappingJackson2HttpMessageConverter(objectMapper: ObjectMapper): MappingJackson2HttpMessageConverter { + return MappingJackson2HttpMessageConverter(objectMapper) + } +} \ No newline at end of file From c5ecacdff0958e128faae6c2a7c561274427f9ac Mon Sep 17 00:00:00 2001 From: sweetykr7 Date: Sat, 1 Mar 2025 20:16:50 +0900 Subject: [PATCH 3/3] chore(board): remove non required import line in driving adapter test code --- .../nettee/board/adapter/driving/web/BoardQueryApiTest.kt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt b/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt index 5c99e24..5fea48a 100644 --- a/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt +++ b/src/test/kotlin/me/nettee/board/adapter/driving/web/BoardQueryApiTest.kt @@ -1,8 +1,5 @@ package me.nettee.board.adapter.driving.web -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import io.kotest.core.spec.style.FreeSpec import me.nettee.board.adapter.driving.web.dto.BoardQueryDto.BoardDetailResponse import me.nettee.board.adapter.driving.web.mapper.BoardDtoMapper @@ -18,15 +15,12 @@ import org.mockito.ArgumentMatchers.argThat import org.mockito.Mockito.`when` import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.boot.test.context.TestConfiguration -import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Import import org.springframework.data.domain.Page import org.springframework.data.domain.PageImpl import org.springframework.data.domain.Pageable import org.springframework.http.HttpStatus import org.springframework.http.MediaType -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.servlet.MockMvc