Refactoring Article Tests
This commit is contained in:
@@ -42,7 +42,6 @@ class RunCucumberTest : En, KoinTest {
|
||||
|
||||
withTestApplication({ module(CUCUMBER) }) {
|
||||
migrations()
|
||||
fixtures()
|
||||
}
|
||||
unitialized = true
|
||||
}
|
||||
|
||||
@@ -18,61 +18,14 @@ import fr.dcproject.repository.Citizen as CitizenRepository
|
||||
|
||||
class ArticleSteps : En, KoinTest {
|
||||
init {
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
Given("I have article with id {string}") { id: String ->
|
||||
var citizen = Citizen(
|
||||
name = CitizenI.Name("John", "Doe"),
|
||||
email = "john.doe@gmail.com",
|
||||
birthday = DateTime.now(),
|
||||
user = UserEntity(username = "john-doe", plainPassword = "azerty")
|
||||
)
|
||||
|
||||
try {
|
||||
get<CitizenRepository>().insertWithUser(citizen)
|
||||
} catch (e: CompletionException) {
|
||||
citizen = get<CitizenRepository>().findByUsername("john-doe")!!
|
||||
}
|
||||
|
||||
val article = ArticleEntity(
|
||||
id = UUID.fromString(id),
|
||||
title = "hello",
|
||||
content = "bla bla bla",
|
||||
description = "A super article",
|
||||
createdBy = citizen
|
||||
)
|
||||
get<ArticleRepository>().upsert(article)
|
||||
}
|
||||
|
||||
Given("I have article") { extraData: DataTable ->
|
||||
extraData.asMap<String, String>(String::class.java, String::class.java).let { params ->
|
||||
val username = params["createdBy"]?.toLowerCase()?.replace(' ', '-')
|
||||
?: error("You must provide the 'createdBy' parameter")
|
||||
val citizen = get<CitizenRepository>().findByUsername(username) ?: error("Citizen not exist")
|
||||
val id = params["id"]?.toUUID() ?: UUID.randomUUID()
|
||||
val article = ArticleEntity(
|
||||
id = id,
|
||||
title = "hello",
|
||||
content = "bla bla bla",
|
||||
description = "A super article",
|
||||
createdBy = citizen
|
||||
)
|
||||
get<ArticleRepository>().upsert(article)
|
||||
Given("I have {int} article") { nb: Int ->
|
||||
repeat(nb) {
|
||||
createArticle()
|
||||
}
|
||||
}
|
||||
|
||||
Given("I have article with id {string} created by {string}") { id: String, username: String ->
|
||||
val citizen = get<CitizenRepository>().findByUsername(username)!!
|
||||
|
||||
val article = ArticleEntity(
|
||||
id = UUID.fromString(id),
|
||||
title = "hello",
|
||||
content = "bla bla bla",
|
||||
description = "A super article",
|
||||
createdBy = citizen
|
||||
)
|
||||
get<ArticleRepository>().upsert(article)
|
||||
Given("I have article") { extraData: DataTable? ->
|
||||
createArticle(extraData)
|
||||
}
|
||||
|
||||
Given("I have comment {string} on article {string}") { commentId: String, articleId: String ->
|
||||
@@ -107,4 +60,38 @@ class ArticleSteps : En, KoinTest {
|
||||
get<CommentArticle>().comment(comment)
|
||||
}
|
||||
}
|
||||
|
||||
private fun createArticle(extraData: DataTable? = null) {
|
||||
val params = extraData?.asMap<String, String>(String::class.java, String::class.java)
|
||||
val createdByUsername = params?.get("createdBy")
|
||||
val username = (createdByUsername ?: UUID.randomUUID().toString())
|
||||
.toLowerCase().replace(' ', '-')
|
||||
|
||||
val createdBy = if (createdByUsername != null) {
|
||||
get<CitizenRepository>().findByUsername(username) ?: error("Citizen not exist")
|
||||
} else {
|
||||
val first = "firstName"+UUID.randomUUID().toString()
|
||||
val last = "lastName"+UUID.randomUUID().toString()
|
||||
Citizen(
|
||||
birthday = DateTime.now(),
|
||||
name = CitizenI.Name(
|
||||
first,
|
||||
last
|
||||
),
|
||||
email = "$first@fakeemail.com",
|
||||
user = UserEntity(username = username, plainPassword = "azerty")
|
||||
).also {
|
||||
get<CitizenRepository>().insertWithUser(it)
|
||||
}
|
||||
}
|
||||
|
||||
val article = ArticleEntity(
|
||||
id = params?.get("id")?.toUUID() ?: UUID.randomUUID(),
|
||||
title = "hello",
|
||||
content = "bla bla bla",
|
||||
description = "A super article",
|
||||
createdBy = createdBy
|
||||
)
|
||||
get<ArticleRepository>().upsert(article)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user