Split Entities for remove nullable variables

This commit is contained in:
2020-01-28 11:08:43 +01:00
parent 3cdd1f3a46
commit 813d6857e9
52 changed files with 569 additions and 287 deletions

View File

@@ -1,5 +1,6 @@
import fr.dcproject.entity.Article
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.CitizenBasic
import fr.dcproject.entity.CitizenI
import fr.dcproject.entity.User
import fr.postgresjson.serializer.deserialize
import fr.postgresjson.serializer.serialize
@@ -57,8 +58,8 @@ class ArticleTest {
@Test
fun `test Article serialize`() {
val user = User(username = "jaque", plainPassword = "azerty")
val citizen = Citizen(
name = Citizen.Name("Jaque", "Bono"),
val citizen = CitizenBasic(
name = CitizenI.Name("Jaque", "Bono"),
birthday = DateTime.now(),
email = "jaque.bono@gmail.com",
user = user

View File

@@ -1,4 +1,5 @@
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.CitizenBasic
import fr.dcproject.entity.CitizenI
import fr.dcproject.entity.Constitution
import fr.dcproject.entity.User
import fr.postgresjson.serializer.deserialize
@@ -78,8 +79,8 @@ class ConstitutionTest {
@Test
fun `test Constitution serialize`() {
val user = User(username = "jaque", plainPassword = "azerty")
val citizen = Citizen(
name = Citizen.Name("Jaque", "Bono"),
val citizen = CitizenBasic(
name = CitizenI.Name("Jaque", "Bono"),
email = "jaque.bono@gmail.com",
birthday = DateTime.now(),
user = user
@@ -90,7 +91,7 @@ class ConstitutionTest {
val constitution = Constitution(
title = "Hello world!",
anonymous = true,
titles = listOf(title1),
titles = mutableListOf(title1),
createdBy = citizen
)
println(constitution.serialize())

View File

@@ -1,7 +1,4 @@
import fr.dcproject.entity.Article
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.Follow
import fr.dcproject.entity.User
import fr.dcproject.entity.*
import fr.postgresjson.serializer.deserialize
import fr.postgresjson.serializer.serialize
import io.ktor.locations.KtorExperimentalLocationsAPI
@@ -53,7 +50,25 @@ class FollowTest {
],
"created_by":{
"id":"4a87ad24-187a-46a8-97ab-00b30a24e561"
"id":"4a87ad24-187a-46a8-97ab-00b30a24e561",
"name":{
"first_name":"Jaque",
"last_name":"Bono",
"civility":null
},
"email": "jaque.bono@gmail.com",
"birthday":"2019-08-09T11:42:47.168Z",
"user_id":null,
"vote_anonymous":null,
"follow_anonymous":null,
"user":{
"id":"721db690-d050-46e6-92b0-056f2e8ba993",
"username":"jaque",
"blocked_at":null,
"plain_password":"azerty",
"created_at":null,
"updated_at":null
}
},
"version_id":"a4aa7dd4-d174-42d2-9ba5-ae6f1129ffce",
"version_number":null,
@@ -65,8 +80,8 @@ class FollowTest {
@Test
fun `test Follow Article serialize`() {
val user = User(username = "jaque", plainPassword = "azerty")
val citizen = Citizen(
name = Citizen.Name("Jaque", "Bono"),
val citizen = CitizenBasic(
name = CitizenI.Name("Jaque", "Bono"),
email = "jaque.bono@gmail.com",
birthday = DateTime.now(),
user = user
@@ -87,7 +102,7 @@ class FollowTest {
@Test
fun `test Follow Article Deserialize`() {
val follow: Follow<Article> = followJson.deserialize()!!
val follow: Follow<ArticleSimple> = followJson.deserialize()!!
follow.id.toString() `should equal` "bae81585-d985-4d7a-9b58-3a13e911688a"
}
}

View File

@@ -1,7 +1,4 @@
import fr.dcproject.entity.Article
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.User
import fr.dcproject.entity.Vote
import fr.dcproject.entity.*
import fr.postgresjson.serializer.deserialize
import fr.postgresjson.serializer.serialize
import io.ktor.locations.KtorExperimentalLocationsAPI
@@ -40,11 +37,12 @@ class VoteTest {
"blocked_at": null,
"plain_password": "azerty",
"roles": [],
"created_at": null,
"updated_at": null
"created_at": "2019-10-01T10:59:40.570Z",
"updated_at": "2019-10-01T10:59:40.570Z"
},
"deleted": false,
"created_at": null,
"created_at": "2019-10-01T10:59:40.570Z",
"updated_at": "2019-10-01T10:59:40.570Z",
"deleted_at": null
},
"target": {
@@ -90,20 +88,20 @@ class VoteTest {
"version_id": "48dad61e-c54b-4f4c-9f66-428f90b94045",
"version_number": null,
"deleted": false,
"created_at": null,
"deleted_at": null
"created_at": "2019-10-01T10:59:40.570Z",
"deleted_at": "2019-10-01T10:59:40.570Z"
},
"note": -1,
"anonymous": true,
"updated_at": null,
"created_at": null
"updated_at": "2019-10-01T10:59:40.570Z",
"created_at": "2019-10-01T10:59:40.570Z"
}""".trimIndent()
@Test
fun `test Vote Article serialize`() {
val user = User(username = "jaque", plainPassword = "azerty")
val citizen = Citizen(
name = Citizen.Name("Jaque", "Bono"),
val citizen = CitizenBasic(
name = CitizenI.Name("Jaque", "Bono"),
email = "jaque.bono@gmail.com",
birthday = DateTime.now(),
user = user

View File

@@ -1,6 +1,6 @@
package feature
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.*
import fr.dcproject.repository.CommentArticle
import io.cucumber.java8.En
import org.joda.time.DateTime
@@ -18,7 +18,7 @@ class ArticleSteps : En, KoinTest {
init {
Given("I have article with id {string}") { id: String ->
var citizen = Citizen(
name = Citizen.Name("John", "Doe"),
name = CitizenI.Name("John", "Doe"),
email = "john.doe@gmail.com",
birthday = DateTime.now(),
user = UserEntity(username = "john-doe", plainPassword = "azerty")
@@ -55,7 +55,7 @@ class ArticleSteps : En, KoinTest {
Given("I have comment {string} on article {string}") { commentId: String, articleId: String ->
var citizen = Citizen(
name = Citizen.Name("John", "Doe"),
name = CitizenI.Name("John", "Doe"),
email = "john.doe@gmail.com",
birthday = DateTime.now(),
user = UserEntity(username = "john-doe", plainPassword = "azerty")
@@ -76,7 +76,7 @@ class ArticleSteps : En, KoinTest {
)
get<ArticleRepository>().upsert(article)
val comment = CommentEntity(
val comment: CommentEntity<ArticleRef> = CommentEntity(
id = UUID.fromString(commentId),
createdBy = citizen,
target = article,

View File

@@ -1,14 +1,14 @@
package feature
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.*
import fr.dcproject.entity.ConstitutionSimple.TitleSimple
import fr.dcproject.entity.request.Constitution
import io.cucumber.java8.En
import org.joda.time.DateTime
import org.koin.test.KoinTest
import org.koin.test.get
import java.util.*
import java.util.concurrent.CompletionException
import fr.dcproject.entity.Constitution as ConstitutionEntity
import fr.dcproject.entity.Constitution.Title as TitleEntity
import fr.dcproject.entity.User as UserEntity
import fr.dcproject.repository.Citizen as CitizenRepository
import fr.dcproject.repository.Constitution as ConstitutionRepository
@@ -17,7 +17,7 @@ class ConstitutionSteps : En, KoinTest {
init {
Given("I have constitution with id {string}") { id: String ->
var citizen = Citizen(
name = Citizen.Name("John", "Doe"),
name = CitizenI.Name("John", "Doe"),
email = "john.doe@gmail.com",
birthday = DateTime.now(),
user = UserEntity(username = "john-doe", plainPassword = "azerty")
@@ -29,33 +29,31 @@ class ConstitutionSteps : En, KoinTest {
citizen = get<CitizenRepository>().findByUsername("john-doe")!!
}
val title1 = TitleEntity(
val title1 = Constitution.Title(
name = "My Title"
)
val constitution = ConstitutionEntity(
id = UUID.fromString(id),
val constitution = Constitution(
title = "hello",
titles = listOf(title1),
createdBy = citizen,
titles = mutableListOf(title1),
anonymous = false
)
get<ConstitutionRepository>().upsert(constitution)
get<ConstitutionRepository>().upsert(constitution.create(citizen))
}
Given("I have constitution with id {string} created by {string}") { id: String, username: String ->
val citizen = get<CitizenRepository>().findByUsername(username)!!
val title1 = TitleEntity(
val title1 = TitleSimple<ArticleRef>(
name = "My Title"
)
val constitution = ConstitutionEntity(
val constitution = ConstitutionSimple<CitizenSimple, TitleSimple<ArticleRef>>(
id = UUID.fromString(id),
title = "hello",
titles = listOf(title1),
createdBy = citizen,
anonymous = false
titles = mutableListOf(title1),
anonymous = false,
createdBy = citizen
)
get<ConstitutionRepository>().upsert(constitution)
}

View File

@@ -3,6 +3,7 @@ package feature
import com.auth0.jwt.JWT
import fr.dcproject.JwtConfig
import fr.dcproject.entity.Citizen
import fr.dcproject.entity.CitizenI
import fr.dcproject.entity.User
import fr.postgresjson.connexion.Requester
import io.cucumber.datatable.DataTable
@@ -29,7 +30,7 @@ class KtorServerAuthSteps : En, KoinTest {
val data = body.asMap<String, String>(String::class.java, String::class.java)
val citizen = Citizen(
id = UUID.fromString(data["id"]),
name = Citizen.Name(data["firstName"], data["lastName"]),
name = CitizenI.Name(data["firstName"]!!, data["lastName"]!!),
email = data["email"] ?: ((data["firstName"] + "-" + data["lastName"]).toLowerCase()) + "@dc-project.com",
birthday = DateTime.now(),
user = user
@@ -52,7 +53,7 @@ class KtorServerAuthSteps : En, KoinTest {
)
val citizen = Citizen(
id = UUID.fromString(id),
name = Citizen.Name(firstName, lastName),
name = CitizenI.Name(firstName, lastName),
email = ("$firstName-$lastName".toLowerCase()) + "@dc-project.fr",
birthday = DateTime.now(),
user = user
@@ -77,7 +78,7 @@ class KtorServerAuthSteps : En, KoinTest {
)
val citizen = Citizen(
id = UUID.fromString(id),
name = Citizen.Name(firstName, lastName),
name = CitizenI.Name(firstName, lastName),
email = "$firstName-$lastName".toLowerCase() + "@gmail.com",
birthday = DateTime.now(),
user = user,