#68 Clean follow Entity

This commit is contained in:
2021-03-01 22:44:17 +01:00
parent 66dcff8f46
commit 8d93fc8b3c
11 changed files with 78 additions and 53 deletions

View File

@@ -5,9 +5,12 @@ import com.rabbitmq.client.ShutdownSignalException
import fr.dcproject.application.Configuration
import fr.dcproject.component.article.ArticleForView
import fr.dcproject.component.article.ArticleRef
import fr.dcproject.component.auth.UserCreator
import fr.dcproject.component.citizen.CitizenCreator
import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.follow.FollowArticleRepository
import fr.dcproject.component.follow.FollowSimple
import fr.dcproject.component.follow.FollowForView
import fr.dcproject.component.notification.ArticleUpdateNotification
import fr.dcproject.component.notification.NotificationConsumer
import fr.dcproject.component.notification.NotificationEmailSender
@@ -78,8 +81,8 @@ class NotificationConsumerTest {
val rabbitFactory: ConnectionFactory = ConnectionFactory().apply { setUri(config.rabbitmq) }
val followArticleRepo = mockk<FollowArticleRepository> {
every { findFollowsByTarget(any()) } returns flow {
FollowSimple(
createdBy = CitizenRef(),
FollowForView(
createdBy = CitizenCreator(name = CitizenI.Name("John", "Doe"), email = "john.doe@dc-project.com", user = UserCreator(username = "john-doe")),
target = ArticleRef(),
).let { emit(it) }
}

View File

@@ -4,13 +4,14 @@ import fr.dcproject.common.security.AccessDecision.DENIED
import fr.dcproject.common.security.AccessDecision.GRANTED
import fr.dcproject.component.article.ArticleForView
import fr.dcproject.component.auth.User
import fr.dcproject.component.auth.UserCreator
import fr.dcproject.component.auth.UserI
import fr.dcproject.component.citizen.Citizen
import fr.dcproject.component.citizen.CitizenBasic
import fr.dcproject.component.citizen.CitizenCart
import fr.dcproject.component.citizen.CitizenCreator
import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.follow.Follow
import fr.dcproject.component.follow.FollowAccessControl
import fr.dcproject.component.follow.FollowForView
import org.amshove.kluent.`should be`
import org.joda.time.DateTime
import org.junit.jupiter.api.Tag
@@ -25,12 +26,10 @@ import java.util.UUID
@Execution(CONCURRENT)
@Tags(Tag("security"), Tag("unit"))
internal class `Follow Access Control` {
private val tesla = CitizenBasic(
user = User(
private val tesla = CitizenCreator(
user = UserCreator(
username = "nicolas-tesla",
roles = listOf(UserI.Roles.ROLE_USER)
),
birthday = DateTime.now(),
email = "tesla@best.com",
name = CitizenI.Name("Nicolas", "Tesla"),
followAnonymous = false
@@ -46,13 +45,11 @@ internal class `Follow Access Control` {
followAnonymous = false
)
private val einstein = CitizenBasic(
private val einstein = CitizenCreator(
id = UUID.fromString("319f1226-8f47-4df3-babd-2c7671ad0fbc"),
user = User(
user = UserCreator(
username = "albert-einstein",
roles = listOf(UserI.Roles.ROLE_USER)
),
birthday = DateTime.now(),
email = "einstein@best.com",
name = CitizenI.Name("Albert", "Einstein"),
followAnonymous = true
@@ -86,12 +83,12 @@ internal class `Follow Access Control` {
title = "Super article"
)
private val follow1 = Follow(
private val follow1 = FollowForView(
createdBy = tesla,
target = article1
)
private val followAnon = Follow(
private val followAnon = FollowForView(
createdBy = einstein,
target = article1
)