test: RelationshipDomainServiceのテストを追加

This commit is contained in:
usbharu 2024-09-21 17:10:49 +09:00
parent 9bc5f01c9b
commit 857beccd59
Signed by: usbharu
GPG Key ID: 95CBCF7046307B77
2 changed files with 164 additions and 0 deletions

View File

@ -0,0 +1,136 @@
package dev.usbharu.hideout.core.domain.service.relationship
import dev.usbharu.hideout.core.domain.model.actor.ActorId
import dev.usbharu.hideout.core.domain.model.relationship.Relationship
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import kotlin.test.assertFalse
import kotlin.test.assertTrue
class RelationshipDomainServiceTest {
@Test
fun block_relationshipとinverseRelationshipが同じ場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().block(relationship, relationship)
}
}
@Test
fun block_relationship_actorIdとinverseRelationshio_targetActorIdが同じ場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
val inverseRelationship = Relationship.default(ActorId(2), ActorId(2))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().block(relationship, inverseRelationship)
}
}
@Test
fun block_relationship_targetActorIdとinverseRelationship_actorIdが同じ場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
val inverseRelationship = Relationship.default(ActorId(1), ActorId(1))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().block(relationship, inverseRelationship)
}
}
@Test
fun block_ブロックされお互いのフォローとフォローリクエストが外れる() {
val relationship = Relationship(
ActorId(1),
ActorId(2),
following = true,
blocking = false,
muting = false,
followRequesting = false,
mutingFollowRequest = false
)
val inverseRelationship = Relationship(
ActorId(2),
ActorId(1),
following = false,
blocking = false,
followRequesting = true,
mutingFollowRequest = false,
muting = false
)
RelationshipDomainService().block(relationship, inverseRelationship)
assertTrue(relationship.blocking)
assertFalse(relationship.following)
assertFalse(relationship.followRequesting)
assertFalse(inverseRelationship.following)
assertFalse(inverseRelationship.followRequesting)
}
@Test
fun followRequest_relationshipとinverseRelationshipが同じ場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().followRequest(relationship, relationship)
}
}
@Test
fun followRequest_relationship_actorIdとinverseRelationshio_targetActorIdが同じ場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
val inverseRelationship = Relationship.default(ActorId(2), ActorId(2))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().followRequest(relationship, inverseRelationship)
}
}
@Test
fun followRequest_relationship_targetActorIdとinverseRelationship_actorIdが同じ場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
val inverseRelationship = Relationship.default(ActorId(1), ActorId(1))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().followRequest(relationship, inverseRelationship)
}
}
@Test
fun followRequest_ブロックされてる場合失敗() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
val inverseRelationship = Relationship(
ActorId(2),
ActorId(1),
following = false,
blocking = true,
muting = false,
followRequesting = false,
mutingFollowRequest = false
)
assertThrows<IllegalArgumentException> {
RelationshipDomainService().followRequest(relationship, inverseRelationship)
}
}
@Test
fun followRequest_ブロックしてる場合は失敗() {
val relationship = Relationship(
ActorId(1),
ActorId(2),
following = false,
blocking = true,
muting = false,
followRequesting = false,
mutingFollowRequest = false
)
val inverseRelationship = Relationship.default(ActorId(2), ActorId(1))
assertThrows<IllegalArgumentException> {
RelationshipDomainService().followRequest(relationship, inverseRelationship)
}
}
@Test
fun followRequest_followRequestingがtrueになる() {
val relationship = Relationship.default(ActorId(1), ActorId(2))
val inverseRelationship = Relationship.default(ActorId(2), ActorId(1))
RelationshipDomainService().followRequest(relationship, inverseRelationship)
assertTrue(relationship.followRequesting)
}
}

View File

@ -0,0 +1,28 @@
package dev.usbharu.hideout.core.domain.service.userdetail
import dev.usbharu.hideout.core.infrastructure.springframework.SpringSecurityPasswordEncoder
import kotlinx.coroutines.test.runTest
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.InjectMocks
import org.mockito.Spy
import org.mockito.junit.jupiter.MockitoExtension
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
import kotlin.test.assertNotEquals
@ExtendWith(MockitoExtension::class)
class UserDetailDomainServiceTest {
@InjectMocks
lateinit var userDetailDomainService: UserDetailDomainService
@Spy
val passwordEncoder: PasswordEncoder = SpringSecurityPasswordEncoder(BCryptPasswordEncoder())
@Test
fun hash() = runTest {
val hashedPassword = userDetailDomainService.hashPassword("password")
assertNotEquals("password", hashedPassword.password)
}
}