#68 Clean workgroup Entity

This commit is contained in:
2021-03-02 22:27:51 +01:00
parent bc772f168f
commit 4c00095118
10 changed files with 76 additions and 72 deletions

View File

@@ -3,11 +3,12 @@ package integration.steps.given
import fr.dcproject.common.utils.toUUID
import fr.dcproject.component.auth.UserForCreate
import fr.dcproject.component.citizen.Citizen
import fr.dcproject.component.citizen.CitizenBasic
import fr.dcproject.component.citizen.CitizenCreator
import fr.dcproject.component.citizen.CitizenForCreate
import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.component.workgroup.Workgroup
import fr.dcproject.component.workgroup.WorkgroupForUpdate
import fr.dcproject.component.workgroup.WorkgroupForView
import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member
import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member.Role.MASTER
@@ -22,18 +23,18 @@ fun TestApplicationEngine.`Given I have workgroup`(
description: String? = null,
anonymous: Boolean? = null,
createdBy: CitizenI.Name? = null,
callback: Workgroup<CitizenBasic>.() -> Unit = {},
callback: WorkgroupForView<CitizenCreator>.() -> Unit = {},
) {
val workgroup: Workgroup<CitizenBasic> = createWorkgroup(id?.toUUID(), name, description, anonymous, createdBy)
val workgroup: WorkgroupForView<CitizenCreator> = createWorkgroup(id?.toUUID(), name, description, anonymous, createdBy)
callback(workgroup)
}
fun Workgroup<CitizenBasic>.`With members`(
fun WorkgroupForView<CitizenCreator>.`With members`(
vararg member: CitizenI.Name
) {
addMemberToWorkgroup(this, *member)
}
fun addMemberToWorkgroup(workgroup: Workgroup<CitizenBasic>, vararg membersNames: CitizenI.Name) {
fun addMemberToWorkgroup(workgroup: WorkgroupForView<CitizenCreator>, vararg membersNames: CitizenI.Name) {
val citizenRepository: CitizenRepository by lazy { GlobalContext.get().koin.get() }
val workgroupRepository: WorkgroupRepository by lazy { GlobalContext.get().koin.get() }
@@ -53,7 +54,7 @@ private fun createWorkgroup(
description: String? = null,
anonymous: Boolean? = null,
createdBy: CitizenI.Name? = null,
): Workgroup<CitizenBasic> {
): WorkgroupForView<CitizenCreator> {
val citizenRepository: CitizenRepository by lazy { GlobalContext.get().koin.get() }
val workgroupRepository: WorkgroupRepository by lazy { GlobalContext.get().koin.get() }
@@ -75,12 +76,12 @@ private fun createWorkgroup(
}
}
val workgroup = Workgroup(
val workgroup = WorkgroupForUpdate(
id = id ?: UUID.randomUUID(),
name = name ?: "Les Incoruptible",
description = description ?: "La vie est notre jeux",
createdBy = creator,
anonymous = (anonymous ?: false) == true,
anonymous = anonymous ?: false,
members = listOf(Member(creator, listOf(MASTER)))
)

View File

@@ -3,9 +3,11 @@ package unit.security
import fr.dcproject.common.security.AccessDecision.DENIED
import fr.dcproject.common.security.AccessDecision.GRANTED
import fr.dcproject.component.auth.User
import fr.dcproject.component.auth.UserCreator
import fr.dcproject.component.auth.UserI
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.workgroup.WorkgroupAccessControl
import fr.dcproject.component.workgroup.WorkgroupWithMembersI
@@ -18,18 +20,16 @@ import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.UUID
import fr.dcproject.component.workgroup.Workgroup as WorkgroupEntity
import fr.dcproject.component.workgroup.WorkgroupForView as WorkgroupEntity
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Execution(CONCURRENT)
@Tags(Tag("security"), Tag("unit"))
internal class `Workgroup 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