move createCitizen of Integration test

This commit is contained in:
2021-02-10 18:10:21 +01:00
parent 34a7310944
commit c85401aa86
5 changed files with 30 additions and 27 deletions

View File

@@ -3,13 +3,8 @@ package integration.steps.given
import fr.dcproject.common.utils.toUUID
import fr.dcproject.component.article.ArticleForUpdate
import fr.dcproject.component.article.ArticleRepository
import fr.dcproject.component.auth.UserForCreate
import fr.dcproject.component.citizen.CitizenForCreate
import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.component.workgroup.WorkgroupRef
import io.ktor.server.testing.TestApplicationEngine
import org.joda.time.DateTime
import org.koin.core.context.GlobalContext
import java.util.UUID
@@ -34,34 +29,14 @@ fun TestApplicationEngine.`Given I have article created by workgroup`(
createArticle(workgroup = WorkgroupRef(workgroupId.toUUID()))
}
private fun createArticle(
fun createArticle(
id: UUID? = null,
workgroup: WorkgroupRef? = null,
createdByUsername: String? = null
) {
val username = (createdByUsername ?: "username" + UUID.randomUUID().toString())
.toLowerCase().replace(' ', '-')
val citizenRepository: CitizenRepository by lazy<CitizenRepository> { GlobalContext.get().koin.get() }
val articleRepository: ArticleRepository by lazy<ArticleRepository> { GlobalContext.get().koin.get() }
val createdBy = if (createdByUsername != null) {
citizenRepository.findByUsername(username) ?: error("Citizen not exist")
} else {
val first = "firstName" + UUID.randomUUID().toString()
val last = "lastName" + UUID.randomUUID().toString()
CitizenForCreate(
birthday = DateTime.now(),
name = CitizenI.Name(
first,
last
),
email = "$first@fakeemail.com",
user = UserForCreate(username = username, password = "azerty")
).let {
citizenRepository.insertWithUser(it) ?: error("Unable to create User")
}
}
val createdBy = createCitizen(createdByUsername)
val article = ArticleForUpdate(
id = id ?: UUID.randomUUID(),

View File

@@ -34,3 +34,28 @@ fun TestApplicationEngine.`Given I have citizen`(
return repo.insertWithUser(citizen)
}
fun createCitizen(createdByUsername: String? = null): Citizen {
val citizenRepository: CitizenRepository by lazy<CitizenRepository> { GlobalContext.get().koin.get() }
val username = (createdByUsername ?: "username" + UUID.randomUUID().toString())
.toLowerCase().replace(' ', '-')
return if (createdByUsername != null) {
citizenRepository.findByUsername(createdByUsername) ?: error("Citizen not exist")
} else {
val first = "firstName" + UUID.randomUUID().toString()
val last = "lastName" + UUID.randomUUID().toString()
CitizenForCreate(
birthday = DateTime.now(),
name = CitizenI.Name(
first,
last
),
email = "$first@fakeemail.com",
user = UserForCreate(username = username, password = "azerty")
).let {
citizenRepository.insertWithUser(it) ?: error("Unable to create User")
}
}
}