test : 회원 등록 기능 테스트 추가
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package com.banjjoknim.springmultimodule.user.adapter.register
|
||||
|
||||
import com.banjjoknim.springmultimodule.user.User
|
||||
import com.banjjoknim.springmultimodule.user.UserRepository
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
|
||||
import org.springframework.context.annotation.Import
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
|
||||
@DataJpaTest
|
||||
@Import(value = [UserRegisterPersistenceAdapter::class])
|
||||
class UserRegisterPersistenceAdapterTest {
|
||||
|
||||
@Autowired
|
||||
private lateinit var userRegisterPersistenceAdapter: UserRegisterPersistenceAdapter
|
||||
|
||||
@Autowired
|
||||
private lateinit var userRepository: UserRepository
|
||||
|
||||
@Test
|
||||
fun `회원을 등록한다`() {
|
||||
userRegisterPersistenceAdapter.registerUser(User("banjjoknim"))
|
||||
|
||||
val user = userRepository.findByIdOrNull(1)
|
||||
|
||||
assertThat(user).isNotNull
|
||||
assertThat(user?.name).isEqualTo("banjjoknim")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.banjjoknim.springmultimodule.user.adapter.register
|
||||
|
||||
import com.banjjoknim.springmultimodule.user.application.register.UserRegisterResponseData
|
||||
import com.banjjoknim.springmultimodule.user.application.register.UserRegisterUseCase
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.ninjasquad.springmockk.MockkBean
|
||||
import io.mockk.every
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.test.web.servlet.MockMvc
|
||||
import org.springframework.test.web.servlet.post
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultHandlers
|
||||
import org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders
|
||||
import org.springframework.web.context.WebApplicationContext
|
||||
import org.springframework.web.filter.CharacterEncodingFilter
|
||||
|
||||
@WebMvcTest(controllers = [UserRegisterWebAdapter::class])
|
||||
class UserRegisterWebAdapterTest {
|
||||
|
||||
@Autowired
|
||||
private lateinit var mockMvc: MockMvc
|
||||
|
||||
@Autowired
|
||||
private lateinit var objectMapper: ObjectMapper
|
||||
|
||||
@MockkBean
|
||||
private lateinit var userRegisterUseCase: UserRegisterUseCase
|
||||
|
||||
@BeforeEach
|
||||
fun setUp(webApplicationContext: WebApplicationContext) {
|
||||
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
|
||||
.addFilter<DefaultMockMvcBuilder>(CharacterEncodingFilter("UTF-8"))
|
||||
.alwaysDo<DefaultMockMvcBuilder>(MockMvcResultHandlers.print())
|
||||
.build()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `회원을 등록한다`() {
|
||||
every { userRegisterUseCase.registerUser(any()) } returns UserRegisterResponseData(1)
|
||||
val request = UserRegisterRequest("banjjoknim")
|
||||
|
||||
mockMvc.post("/users") {
|
||||
contentType = MediaType.APPLICATION_JSON
|
||||
content = objectMapper.writeValueAsString(request)
|
||||
}.andExpect {
|
||||
content { json("""{"userId":1}""") }
|
||||
status { isOk() }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.banjjoknim.springmultimodule.user.application.register
|
||||
|
||||
import com.banjjoknim.springmultimodule.user.User
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class UserRegisterServiceTest {
|
||||
|
||||
private val userRegisterPersistencePort = mockk<UserRegisterPersistencePort>()
|
||||
private val userRegisterService = UserRegisterService(userRegisterPersistencePort)
|
||||
|
||||
@Test
|
||||
fun `회원을 등록한다`() {
|
||||
every { userRegisterPersistencePort.registerUser(any()) } returns User("banjjoknim", 1)
|
||||
val requestData = UserRegisterRequestData("banjjoknim")
|
||||
|
||||
val responseData = userRegisterService.registerUser(requestData)
|
||||
|
||||
assertThat(responseData).isEqualTo(UserRegisterResponseData(1))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user