import fr.dcproject.entity.* import fr.postgresjson.serializer.deserialize import fr.postgresjson.serializer.serialize import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.util.KtorExperimentalAPI import org.amshove.kluent.`should equal` import org.amshove.kluent.shouldBe import org.intellij.lang.annotations.Language import org.joda.time.DateTime import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS @KtorExperimentalLocationsAPI @KtorExperimentalAPI @TestInstance(PER_CLASS) class VoteTest { @Language("JSON") private val voteJson: String = """ { "id": "032acc3d-e8c5-4cb2-9297-bec913ff8d9b", "created_by": { "id": "40c65a43-f9f8-45cd-aa31-953376e7c94a", "name": { "first_name": "Jaque", "last_name": "Bono", "civility": null }, "email": "jaque.bono@gmail.com", "birthday": "2019-10-01T10:59:40.570Z", "user_id": null, "vote_anonymous": true, "follow_anonymous": true, "user": { "id": "f68df389-fb0d-423e-90fd-a140a9ed29b9", "username": "jaque", "blocked_at": null, "plain_password": "azerty", "roles": [], "created_at": "2019-10-01T10:59:40.570Z", "updated_at": "2019-10-01T10:59:40.570Z" }, "deleted": false, "created_at": "2019-10-01T10:59:40.570Z", "updated_at": "2019-10-01T10:59:40.570Z", "deleted_at": null }, "target": { "id": "90f28912-7bd5-4f37-a0ea-8620e3817d51", "title": "Hello world!", "anonymous": true, "content": "bla bla bla", "description": "this is the changement !", "tags": [], "draft": false, "last_version": false, "created_by": { "id": "40c65a43-f9f8-45cd-aa31-953376e7c94a", "name": { "first_name": "Jaque", "last_name": "Bono", "civility": null }, "email": "jaque.bono@gmail.com", "birthday": "2019-10-01T10:59:40.570Z", "user_id": null, "vote_anonymous": true, "follow_anonymous": true, "user": { "id": "f68df389-fb0d-423e-90fd-a140a9ed29b9", "username": "jaque", "blocked_at": null, "plain_password": "azerty", "roles": [], "created_at": "2019-08-09T11:42:47.168Z", "updated_at": "2019-08-09T11:42:47.168Z" }, "deleted": false, "created_at": "2019-08-09T11:42:47.168Z", "deleted_at": "2019-08-09T11:42:47.168Z" }, "votes": { "up": 0, "neutral": 0, "down": 0, "updated_at": null }, "version_id": "48dad61e-c54b-4f4c-9f66-428f90b94045", "version_number": null, "deleted": false, "created_at": "2019-10-01T10:59:40.570Z", "deleted_at": "2019-10-01T10:59:40.570Z" }, "note": -1, "anonymous": true, "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 = CitizenBasic( name = CitizenI.Name("Jaque", "Bono"), email = "jaque.bono@gmail.com", birthday = DateTime.now(), user = user ) val article = Article( title = "Hello world!", content = "bla bla bla", description = "this is the changement !", createdBy = citizen ) val vote = Vote( createdBy = citizen, target = article, note = -1 ) vote.serialize().contains("""Hello world!""") shouldBe true vote.serialize().contains("-1") shouldBe true println(vote.serialize()) } @Test fun `test Vote Article Deserialize`() { val vote: Vote
= voteJson.deserialize()!! vote.id.toString() `should equal` "032acc3d-e8c5-4cb2-9297-bec913ff8d9b" vote.note.toString() `should equal` "-1" } }