테스트 코드 추가작성, verify로 목객체 작동 검증 확인
This commit is contained in:
@@ -4,18 +4,12 @@ import myblog.blog.article.domain.Article
|
||||
import myblog.blog.tags.domain.ArticleTagList
|
||||
import myblog.blog.tags.domain.Tags
|
||||
import org.junit.jupiter.api.extension.ExtendWith
|
||||
import org.mockito.InjectMocks
|
||||
import org.mockito.Mock
|
||||
import org.mockito.junit.jupiter.MockitoExtension
|
||||
import myblog.blog.tags.repository.ArticleTagListsRepository
|
||||
import myblog.blog.tags.repository.TagsRepository
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.mockito.BDDMockito
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.kotlin.doReturn
|
||||
import org.mockito.kotlin.mock
|
||||
import org.mockito.kotlin.whenever
|
||||
import org.mockito.kotlin.withSettings
|
||||
import org.mockito.*
|
||||
import org.mockito.kotlin.*
|
||||
import java.lang.reflect.Method
|
||||
import java.util.*
|
||||
import kotlin.test.expect
|
||||
@@ -31,7 +25,7 @@ class TagsServiceTests {
|
||||
lateinit var tagsService: TagsService
|
||||
|
||||
@Test
|
||||
fun`기존 태그 존재시 조회하기`() {
|
||||
fun`기존 태그 존재시 성공적으로 tagList 저장하기`() {
|
||||
// given
|
||||
val article = Article.builder().build()
|
||||
val names = "[{\"value\":\"1\"},{\"value\":\"2\"}]"
|
||||
@@ -39,19 +33,15 @@ class TagsServiceTests {
|
||||
.thenReturn(Optional.of(Tags("1")))
|
||||
whenever(tagsRepository.findByName("2"))
|
||||
.thenReturn(Optional.of(Tags("2")))
|
||||
|
||||
val mock1 = mock<ArticleTagListsRepository>(lenient = true){
|
||||
on {save(ArticleTagList(article, Tags("1"))) } doReturn ArticleTagList(article,Tags("1"))
|
||||
}
|
||||
val mock2 = mock<ArticleTagListsRepository>(lenient = true){
|
||||
on {save(ArticleTagList(article, Tags("2"))) } doReturn ArticleTagList(article,Tags("2"))
|
||||
}
|
||||
// when
|
||||
// when
|
||||
tagsService.createNewTagsAndArticleTagList(names, article);
|
||||
//then
|
||||
val capturedArticleTagList = ArgumentCaptor.forClass(ArticleTagList::class.java)
|
||||
verify(articleTagListsRepository, times(2)).save(capturedArticleTagList.capture())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun`신규 태그시 저장하기`() {
|
||||
fun`신규 태그시 태그 저장후 성공적으로 tagList도 저장하기`() {
|
||||
// given
|
||||
val article = Article.builder().build()
|
||||
val names = "[{\"value\":\"1\"},{\"value\":\"2\"}]"
|
||||
@@ -67,13 +57,20 @@ class TagsServiceTests {
|
||||
val mock2 = mock<TagsRepository>(lenient = true){
|
||||
on {save(tags2) } doReturn tags2
|
||||
}
|
||||
val mock3 = mock<ArticleTagListsRepository>(lenient = true){
|
||||
on {save(ArticleTagList(article, tags1)) } doReturn ArticleTagList(article,tags1)
|
||||
}
|
||||
val mock4 = mock<ArticleTagListsRepository>(lenient = true){
|
||||
on {save(ArticleTagList(article, tags2)) } doReturn ArticleTagList(article,tags2)
|
||||
}
|
||||
// when
|
||||
tagsService.createNewTagsAndArticleTagList(names, article);
|
||||
//then
|
||||
val capturedArticleTagList = ArgumentCaptor.forClass(ArticleTagList::class.java)
|
||||
verify(articleTagListsRepository, times(2)).save(capturedArticleTagList.capture())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `아티클 관련 태그 전부 삭제 성공`(){
|
||||
//given
|
||||
val article = Article.builder().build()
|
||||
//when
|
||||
tagsService.deleteAllTagsWith(article)
|
||||
//then
|
||||
verify(articleTagListsRepository, times(1)).deleteByArticle(article)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user