From f76f6f83bbfcb5dd2ee79a4bd5d35ea11d11f410 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Thu, 10 Oct 2019 22:50:24 +0200 Subject: [PATCH] Lint project --- src/main/kotlin/fr/dcproject/Application.kt | 2 +- src/main/kotlin/fr/dcproject/Configuration.kt | 1 - src/main/kotlin/fr/dcproject/Module.kt | 4 +-- .../kotlin/fr/dcproject/entity/Article.kt | 2 +- .../kotlin/fr/dcproject/entity/Comment.kt | 6 ++-- .../fr/dcproject/entity/Constitution.kt | 6 ++-- src/main/kotlin/fr/dcproject/entity/Extra.kt | 8 ++--- src/main/kotlin/fr/dcproject/entity/Follow.kt | 4 +-- src/main/kotlin/fr/dcproject/entity/User.kt | 3 +- .../kotlin/fr/dcproject/entity/Votable.kt | 4 +-- src/main/kotlin/fr/dcproject/entity/Vote.kt | 4 +-- .../fr/dcproject/entity/VoteAggregation.kt | 6 ++-- .../fr/dcproject/entity/request/Article.kt | 2 +- .../fr/dcproject/entity/request/Comment.kt | 4 +-- .../kotlin/fr/dcproject/messages/Mailer.kt | 2 +- .../fr/dcproject/messages/SsoManager.kt | 2 +- .../kotlin/fr/dcproject/repository/Comment.kt | 8 ++--- .../kotlin/fr/dcproject/repository/Follow.kt | 6 ++-- .../kotlin/fr/dcproject/repository/User.kt | 4 +-- .../kotlin/fr/dcproject/repository/Vote.kt | 20 ++++++------- .../kotlin/fr/dcproject/routes/Comment.kt | 2 +- .../fr/dcproject/routes/PaginatedRequest.kt | 2 +- .../kotlin/fr/dcproject/routes/VoteArticle.kt | 2 +- .../dcproject/security/voter/ArticleVoter.kt | 7 ++--- .../dcproject/security/voter/CitizenVoter.kt | 9 ++---- .../dcproject/security/voter/CommentVoter.kt | 8 ++--- .../security/voter/ConstitutionVoter.kt | 7 ++--- .../dcproject/security/voter/FollowVoter.kt | 8 ++--- .../fr/dcproject/security/voter/VoteVoter.kt | 8 ++--- .../fr/dcproject/utils/LoggerDelegate.kt | 2 +- src/test/kotlin/MailerTest.kt | 2 +- src/test/kotlin/RepositoryTest.kt | 30 ------------------- src/test/kotlin/RunCucumberTest.kt | 4 +-- src/test/kotlin/feature/ArticleSteps.kt | 2 +- src/test/kotlin/feature/ConstitutionSteps.kt | 2 +- .../kotlin/feature/KtorServerAuthSteps.kt | 6 ++-- 36 files changed, 81 insertions(+), 118 deletions(-) delete mode 100644 src/test/kotlin/RepositoryTest.kt diff --git a/src/main/kotlin/fr/dcproject/Application.kt b/src/main/kotlin/fr/dcproject/Application.kt index 81c5811..38f9e50 100644 --- a/src/main/kotlin/fr/dcproject/Application.kt +++ b/src/main/kotlin/fr/dcproject/Application.kt @@ -143,7 +143,7 @@ fun Application.module(env: Env = PROD) { registerModule(JodaModule()) disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) configure(SerializationFeature.INDENT_OUTPUT, true) setDefaultPrettyPrinter(DefaultPrettyPrinter().apply { indentArraysWith(DefaultPrettyPrinter.FixedSpaceIndenter.instance) diff --git a/src/main/kotlin/fr/dcproject/Configuration.kt b/src/main/kotlin/fr/dcproject/Configuration.kt index 5bdbe31..042cabd 100644 --- a/src/main/kotlin/fr/dcproject/Configuration.kt +++ b/src/main/kotlin/fr/dcproject/Configuration.kt @@ -50,5 +50,4 @@ object JwtConfig { * Calculate the expiration Date based on current time + the given validity */ private fun getExpiration() = Date(System.currentTimeMillis() + validityInMs) - } \ No newline at end of file diff --git a/src/main/kotlin/fr/dcproject/Module.kt b/src/main/kotlin/fr/dcproject/Module.kt index e79e472..77bec4e 100644 --- a/src/main/kotlin/fr/dcproject/Module.kt +++ b/src/main/kotlin/fr/dcproject/Module.kt @@ -50,6 +50,6 @@ val Module = module { single { Migrations(connection = get(), directory = config.sqlFiles) } - single { Mailer(config.sendGridKey) } - single { SsoManager(get(), config.domain, get()) } + single { Mailer(config.sendGridKey) } + single { SsoManager(get(), config.domain, get()) } } diff --git a/src/main/kotlin/fr/dcproject/entity/Article.kt b/src/main/kotlin/fr/dcproject/entity/Article.kt index d34d171..fb9491b 100644 --- a/src/main/kotlin/fr/dcproject/entity/Article.kt +++ b/src/main/kotlin/fr/dcproject/entity/Article.kt @@ -12,7 +12,7 @@ class Article( var draft: Boolean = false, var lastVersion: Boolean = false, createdBy: Citizen? -): +) : UuidEntity(id), EntityVersioning by UuidEntityVersioning(), EntityCreatedAt by EntityCreatedAtImp(), diff --git a/src/main/kotlin/fr/dcproject/entity/Comment.kt b/src/main/kotlin/fr/dcproject/entity/Comment.kt index ccdca2b..6bfddfa 100644 --- a/src/main/kotlin/fr/dcproject/entity/Comment.kt +++ b/src/main/kotlin/fr/dcproject/entity/Comment.kt @@ -1,9 +1,9 @@ package fr.dcproject.entity - import fr.postgresjson.entity.* +import fr.postgresjson.entity.* import java.util.* -open class Comment ( +open class Comment ( id: UUID = UUID.randomUUID(), createdBy: Citizen, target: T, @@ -12,7 +12,7 @@ open class Comment ( var parent: Comment? = null, var parentsIds: List? = null, val childrenCount: Int? = null -): Extra(id, createdBy, target), +) : Extra(id, createdBy, target), EntityUpdatedAt by EntityUpdatedAtImp(), EntityDeletedAt by EntityDeletedAtImp(), Votable by VotableImp() diff --git a/src/main/kotlin/fr/dcproject/entity/Constitution.kt b/src/main/kotlin/fr/dcproject/entity/Constitution.kt index 4449f2b..f1b3a3a 100644 --- a/src/main/kotlin/fr/dcproject/entity/Constitution.kt +++ b/src/main/kotlin/fr/dcproject/entity/Constitution.kt @@ -11,13 +11,13 @@ class Constitution( var draft: Boolean = false, var lastVersion: Boolean = false, createdBy: Citizen? -): UuidEntity(id), +) : UuidEntity(id), EntityVersioning by UuidEntityVersioning(), EntityCreatedAt by EntityCreatedAtImp(), EntityCreatedBy by EntityCreatedByImp(createdBy), EntityDeletedAt by EntityDeletedAtImp() { - init{ + init { titles.forEachIndexed { index, title -> title.createdBy = this.createdBy title.rank = index @@ -30,7 +30,7 @@ class Constitution( var rank: Int? = null, var articles: List
= listOf(), createdBy: Citizen? = null - ): UuidEntity(id), + ) : UuidEntity(id), EntityCreatedAt by EntityCreatedAtImp(), EntityCreatedBy by EntityCreatedByImp(createdBy) } diff --git a/src/main/kotlin/fr/dcproject/entity/Extra.kt b/src/main/kotlin/fr/dcproject/entity/Extra.kt index afac3d5..d83f705 100644 --- a/src/main/kotlin/fr/dcproject/entity/Extra.kt +++ b/src/main/kotlin/fr/dcproject/entity/Extra.kt @@ -3,20 +3,20 @@ package fr.dcproject.entity import fr.postgresjson.entity.* import java.util.* -interface ExtraI : +interface ExtraI : EntityI, EntityCreatedAt, - EntityCreatedBy{ + EntityCreatedBy { var target: T var targetReference: String } -abstract class Extra( +abstract class Extra( id: UUID? = UUID.randomUUID(), createdBy: Citizen, override var target: T, override var targetReference: String = target::class.simpleName!!.toLowerCase() -): +) : ExtraI, UuidEntity(id), EntityCreatedAt by EntityCreatedAtImp(), diff --git a/src/main/kotlin/fr/dcproject/entity/Follow.kt b/src/main/kotlin/fr/dcproject/entity/Follow.kt index 7cb413e..1746477 100644 --- a/src/main/kotlin/fr/dcproject/entity/Follow.kt +++ b/src/main/kotlin/fr/dcproject/entity/Follow.kt @@ -2,8 +2,8 @@ package fr.dcproject.entity import fr.postgresjson.entity.UuidEntity import java.util.* -class Follow ( +class Follow ( id: UUID = UUID.randomUUID(), createdBy: Citizen, target: T -): Extra(id, createdBy, target) +) : Extra(id, createdBy, target) diff --git a/src/main/kotlin/fr/dcproject/entity/User.kt b/src/main/kotlin/fr/dcproject/entity/User.kt index 7e2b91d..b55d97d 100644 --- a/src/main/kotlin/fr/dcproject/entity/User.kt +++ b/src/main/kotlin/fr/dcproject/entity/User.kt @@ -14,7 +14,6 @@ class User( ) : UuidEntity(id), EntityCreatedAt by EntityCreatedAtImp(), EntityUpdatedAt by EntityUpdatedAtImp(), - Principal -{ + Principal { enum class Roles { ROLE_USER, ROLE_ADMIN } } diff --git a/src/main/kotlin/fr/dcproject/entity/Votable.kt b/src/main/kotlin/fr/dcproject/entity/Votable.kt index ada0ae9..49983e2 100644 --- a/src/main/kotlin/fr/dcproject/entity/Votable.kt +++ b/src/main/kotlin/fr/dcproject/entity/Votable.kt @@ -4,6 +4,6 @@ interface Votable { var votes: VoteAggregation } -class VotableImp: Votable { - override var votes: VoteAggregation = VoteAggregation(0,0,0) +class VotableImp : Votable { + override var votes: VoteAggregation = VoteAggregation(0, 0, 0) } \ No newline at end of file diff --git a/src/main/kotlin/fr/dcproject/entity/Vote.kt b/src/main/kotlin/fr/dcproject/entity/Vote.kt index e27db8a..b6aaca3 100644 --- a/src/main/kotlin/fr/dcproject/entity/Vote.kt +++ b/src/main/kotlin/fr/dcproject/entity/Vote.kt @@ -5,13 +5,13 @@ import fr.postgresjson.entity.EntityUpdatedAtImp import fr.postgresjson.entity.UuidEntity import java.util.* -open class Vote ( +open class Vote ( id: UUID = UUID.randomUUID(), createdBy: Citizen, target: T, var note: Int, var anonymous: Boolean = true -): Extra(id, createdBy, target), +) : Extra(id, createdBy, target), EntityUpdatedAt by EntityUpdatedAtImp() { init { if (note > 1 && note < -1) { diff --git a/src/main/kotlin/fr/dcproject/entity/VoteAggregation.kt b/src/main/kotlin/fr/dcproject/entity/VoteAggregation.kt index 4740195..ca8a0f5 100644 --- a/src/main/kotlin/fr/dcproject/entity/VoteAggregation.kt +++ b/src/main/kotlin/fr/dcproject/entity/VoteAggregation.kt @@ -4,9 +4,9 @@ import fr.postgresjson.entity.EntityI import fr.postgresjson.entity.EntityUpdatedAt import fr.postgresjson.entity.EntityUpdatedAtImp -open class VoteAggregation ( +open class VoteAggregation( val up: Int, val neutral: Int, val down: Int -): EntityI, - EntityUpdatedAt by EntityUpdatedAtImp() +) : EntityI, + EntityUpdatedAt by EntityUpdatedAtImp() diff --git a/src/main/kotlin/fr/dcproject/entity/request/Article.kt b/src/main/kotlin/fr/dcproject/entity/request/Article.kt index a7630e8..7d98903 100644 --- a/src/main/kotlin/fr/dcproject/entity/request/Article.kt +++ b/src/main/kotlin/fr/dcproject/entity/request/Article.kt @@ -13,7 +13,7 @@ class Article( val tags: List = emptyList(), val draft: Boolean = false, val versionId: UUID? -): +) : Request { fun merge(article: ArticleEntity) { diff --git a/src/main/kotlin/fr/dcproject/entity/request/Comment.kt b/src/main/kotlin/fr/dcproject/entity/request/Comment.kt index 20f0c14..c41029e 100644 --- a/src/main/kotlin/fr/dcproject/entity/request/Comment.kt +++ b/src/main/kotlin/fr/dcproject/entity/request/Comment.kt @@ -1,5 +1,5 @@ package fr.dcproject.entity.request -class Comment ( +class Comment( val content: String -): Request \ No newline at end of file +) : Request \ No newline at end of file diff --git a/src/main/kotlin/fr/dcproject/messages/Mailer.kt b/src/main/kotlin/fr/dcproject/messages/Mailer.kt index 1862fb7..4ffa10b 100644 --- a/src/main/kotlin/fr/dcproject/messages/Mailer.kt +++ b/src/main/kotlin/fr/dcproject/messages/Mailer.kt @@ -6,7 +6,7 @@ import com.sendgrid.SendGrid import com.sendgrid.helpers.mail.Mail import java.io.IOException -class Mailer ( +class Mailer( private val key: String ) { fun sendEmail(action: () -> Mail): Boolean { diff --git a/src/main/kotlin/fr/dcproject/messages/SsoManager.kt b/src/main/kotlin/fr/dcproject/messages/SsoManager.kt index 21d67ee..fc4a53e 100644 --- a/src/main/kotlin/fr/dcproject/messages/SsoManager.kt +++ b/src/main/kotlin/fr/dcproject/messages/SsoManager.kt @@ -8,7 +8,7 @@ import io.ktor.http.URLBuilder import fr.dcproject.entity.Citizen as CitizenEntity import fr.dcproject.repository.Citizen as CitizenRepository -class SsoManager ( +class SsoManager( private val mailer: Mailer, private val domain: String, private val citizenRepo: CitizenRepository diff --git a/src/main/kotlin/fr/dcproject/repository/Comment.kt b/src/main/kotlin/fr/dcproject/repository/Comment.kt index edcd0d0..98b8e98 100644 --- a/src/main/kotlin/fr/dcproject/repository/Comment.kt +++ b/src/main/kotlin/fr/dcproject/repository/Comment.kt @@ -10,7 +10,7 @@ import fr.dcproject.entity.Citizen as CitizenEntity import fr.dcproject.entity.Comment as CommentEntity import fr.dcproject.entity.Constitution as ConstitutionEntity -abstract class Comment (override var requester: Requester): RepositoryI { +abstract class Comment (override var requester: Requester) : RepositoryI { abstract fun findById(id: UUID): CommentEntity? abstract fun findByCitizen( @@ -81,7 +81,7 @@ abstract class Comment (override var requester: Requester): Repos } } -class CommentGeneric (requester: Requester): Comment(requester) { +class CommentGeneric(requester: Requester) : Comment(requester) { override fun findById(id: UUID): CommentEntity? { return requester .getFunction("find_comment_by_id") @@ -102,7 +102,7 @@ class CommentGeneric (requester: Requester): Comment(requester) { } } -class CommentArticle (requester: Requester): Comment(requester) { +class CommentArticle(requester: Requester) : Comment(requester) { override fun findById(id: UUID): CommentEntity? { return requester .getFunction("find_comment_by_id") @@ -125,7 +125,7 @@ class CommentArticle (requester: Requester): Comment(requester) { } } -class CommentConstitution (requester: Requester): Comment(requester) { +class CommentConstitution(requester: Requester) : Comment(requester) { override fun findById(id: UUID): CommentEntity? { return requester .getFunction("find_comment_by_id") diff --git a/src/main/kotlin/fr/dcproject/repository/Follow.kt b/src/main/kotlin/fr/dcproject/repository/Follow.kt index cd8689f..e260153 100644 --- a/src/main/kotlin/fr/dcproject/repository/Follow.kt +++ b/src/main/kotlin/fr/dcproject/repository/Follow.kt @@ -10,7 +10,7 @@ import fr.dcproject.entity.Citizen as CitizenEntity import fr.dcproject.entity.Constitution as ConstitutionEntity import fr.dcproject.entity.Follow as FollowEntity -open class Follow (override var requester: Requester): RepositoryI { +open class Follow (override var requester: Requester) : RepositoryI { open fun findByCitizen( citizen: CitizenEntity, page: Int = 1, @@ -54,7 +54,7 @@ open class Follow (override var requester: Requester): Repository } } -class FollowArticle (requester: Requester): Follow(requester) { +class FollowArticle(requester: Requester) : Follow(requester) { override fun findByCitizen( citizenId: UUID, page: Int, @@ -69,7 +69,7 @@ class FollowArticle (requester: Requester): Follow(requester) { } } -class FollowConstitution (requester: Requester): Follow(requester) { +class FollowConstitution(requester: Requester) : Follow(requester) { override fun findByCitizen( citizenId: UUID, page: Int, diff --git a/src/main/kotlin/fr/dcproject/repository/User.kt b/src/main/kotlin/fr/dcproject/repository/User.kt index 49a883b..388e2ef 100644 --- a/src/main/kotlin/fr/dcproject/repository/User.kt +++ b/src/main/kotlin/fr/dcproject/repository/User.kt @@ -36,7 +36,7 @@ class User(override var requester: Requester) : RepositoryI { .sendQuery("resource" to user) } - class UserNotFound(override val message: String?, override val cause: Throwable?): Throwable(message, cause) { - constructor(id: UUID): this("No User with ID $id", null) + class UserNotFound(override val message: String?, override val cause: Throwable?) : Throwable(message, cause) { + constructor(id: UUID) : this("No User with ID $id", null) } } diff --git a/src/main/kotlin/fr/dcproject/repository/Vote.kt b/src/main/kotlin/fr/dcproject/repository/Vote.kt index e88225d..4300d3d 100644 --- a/src/main/kotlin/fr/dcproject/repository/Vote.kt +++ b/src/main/kotlin/fr/dcproject/repository/Vote.kt @@ -13,7 +13,7 @@ import java.util.* import fr.dcproject.entity.Citizen as CitizenEntity import fr.dcproject.entity.Vote as VoteEntity -open class Vote (override var requester: Requester): RepositoryI { +open class Vote (override var requester: Requester) : RepositoryI { fun vote(vote: VoteEntity): VoteAggregation { val target = vote.target val reference = if (target is Comment<*>) { @@ -56,7 +56,7 @@ open class Vote (override var requester: Requester): RepositoryI citizen: CitizenEntity, targets: List ): List> { - val typeReference = object: TypeReference>>() {} + val typeReference = object : TypeReference>>() {} return requester.run { val citizenId = citizen.id ?: error("The citizen must have an id") getFunction("find_citizen_votes_by_target_ids") @@ -68,7 +68,7 @@ open class Vote (override var requester: Requester): RepositoryI } } -class VoteArticle (requester: Requester): Vote
(requester) { +class VoteArticle(requester: Requester) : Vote
(requester) { fun findByCitizen( citizen: CitizenEntity, page: Int = 1, @@ -77,13 +77,13 @@ class VoteArticle (requester: Requester): Vote
(requester) { findByCitizen( citizen.id ?: error("The citizen must have an id"), "article", - object: TypeReference>>() {}, + object : TypeReference>>() {}, page, limit ) } -class VoteArticleComment (requester: Requester): Vote>(requester) { +class VoteArticleComment(requester: Requester) : Vote>(requester) { fun findByCitizen( citizen: CitizenEntity, page: Int = 1, @@ -92,13 +92,13 @@ class VoteArticleComment (requester: Requester): Vote>(requeste findByCitizen( citizen.id ?: error("The citizen must have an id"), "article", - object: TypeReference>>>() {}, + object : TypeReference>>>() {}, page, limit ) } -class VoteComment (requester: Requester): Vote>(requester) { +class VoteComment(requester: Requester) : Vote>(requester) { fun findByCitizen( citizen: CitizenEntity, page: Int = 1, @@ -107,13 +107,13 @@ class VoteComment (requester: Requester): Vote>(requester) { findByCitizen( citizen.id ?: error("The citizen must have an id"), "article", - object: TypeReference>>>() {}, + object : TypeReference>>>() {}, page, limit ) } -class VoteConstitution (requester: Requester): Vote(requester) { +class VoteConstitution(requester: Requester) : Vote(requester) { fun findByCitizen( citizen: CitizenEntity, page: Int = 1, @@ -122,7 +122,7 @@ class VoteConstitution (requester: Requester): Vote(requester) { findByCitizen( citizen.id ?: error("The citizen must have an id"), "constitution", - object: TypeReference>>() {}, + object : TypeReference>>() {}, page, limit ) diff --git a/src/main/kotlin/fr/dcproject/routes/Comment.kt b/src/main/kotlin/fr/dcproject/routes/Comment.kt index 8fc9f75..b917a77 100644 --- a/src/main/kotlin/fr/dcproject/routes/Comment.kt +++ b/src/main/kotlin/fr/dcproject/routes/Comment.kt @@ -56,7 +56,7 @@ fun Route.comment(repo: CommentRepository) { put { val comment = repo.findById(it.comment)!! - assertCan(UPDATE,comment) + assertCan(UPDATE, comment) comment.content = call.receiveText() repo.edit(comment) diff --git a/src/main/kotlin/fr/dcproject/routes/PaginatedRequest.kt b/src/main/kotlin/fr/dcproject/routes/PaginatedRequest.kt index c08d01b..de27da5 100644 --- a/src/main/kotlin/fr/dcproject/routes/PaginatedRequest.kt +++ b/src/main/kotlin/fr/dcproject/routes/PaginatedRequest.kt @@ -8,7 +8,7 @@ interface PaginatedRequestI { open class PaginatedRequest( page: Int = 1, limit: Int = 50 -): PaginatedRequestI { +) : PaginatedRequestI { override val page: Int = if (page < 1) 1 else page override val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit } \ No newline at end of file diff --git a/src/main/kotlin/fr/dcproject/routes/VoteArticle.kt b/src/main/kotlin/fr/dcproject/routes/VoteArticle.kt index e0818a7..1bac229 100644 --- a/src/main/kotlin/fr/dcproject/routes/VoteArticle.kt +++ b/src/main/kotlin/fr/dcproject/routes/VoteArticle.kt @@ -41,7 +41,7 @@ object VoteArticlePaths { page: Int = 1, limit: Int = 50, val search: String? = null - ): PaginatedRequestI by PaginatedRequest(page, limit) + ) : PaginatedRequestI by PaginatedRequest(page, limit) @Location("/citizens/{citizen}/votes") class CitizenVotesByIdsRequest(val citizen: Citizen, id: List) { diff --git a/src/main/kotlin/fr/dcproject/security/voter/ArticleVoter.kt b/src/main/kotlin/fr/dcproject/security/voter/ArticleVoter.kt index a93824a..44a26d1 100644 --- a/src/main/kotlin/fr/dcproject/security/voter/ArticleVoter.kt +++ b/src/main/kotlin/fr/dcproject/security/voter/ArticleVoter.kt @@ -6,8 +6,8 @@ import fr.dcproject.entity.Article as ArticleEntity import fr.dcproject.entity.Comment as CommentEntity import fr.dcproject.entity.Vote as VoteEntity -class ArticleVoter: Voter { - enum class Action: ActionI { +class ArticleVoter : Voter { + enum class Action : ActionI { CREATE, UPDATE, VIEW, @@ -16,8 +16,7 @@ class ArticleVoter: Voter { override fun supports(action: ActionI, call: ApplicationCall, subject: Any?): Boolean { return (action is Action || action is CommentVoter.Action || action is VoteVoter.Action) - && - (subject is List<*> || subject is ArticleEntity? || subject is VoteEntity<*> || subject is CommentEntity<*>) + .and(subject is List<*> || subject is ArticleEntity? || subject is VoteEntity<*> || subject is CommentEntity<*>) } override fun vote(action: ActionI, call: ApplicationCall, subject: Any?): Vote { diff --git a/src/main/kotlin/fr/dcproject/security/voter/CitizenVoter.kt b/src/main/kotlin/fr/dcproject/security/voter/CitizenVoter.kt index ec6c31b..f45a0c5 100644 --- a/src/main/kotlin/fr/dcproject/security/voter/CitizenVoter.kt +++ b/src/main/kotlin/fr/dcproject/security/voter/CitizenVoter.kt @@ -6,8 +6,8 @@ import io.ktor.application.ApplicationCall import io.ktor.locations.KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI -class CitizenVoter: Voter { - enum class Action: ActionI { +class CitizenVoter : Voter { + enum class Action : ActionI { CREATE, UPDATE, VIEW, @@ -17,10 +17,7 @@ class CitizenVoter: Voter { override fun supports(action: ActionI, call: ApplicationCall, subject: Any?): Boolean { return (action is Action) - && ( - subject is List<*> || - subject is Citizen? - ) + .and(subject is List<*> || subject is Citizen?) } override fun vote(action: ActionI, call: ApplicationCall, subject: Any?): Vote { diff --git a/src/main/kotlin/fr/dcproject/security/voter/CommentVoter.kt b/src/main/kotlin/fr/dcproject/security/voter/CommentVoter.kt index f95a947..9c94284 100644 --- a/src/main/kotlin/fr/dcproject/security/voter/CommentVoter.kt +++ b/src/main/kotlin/fr/dcproject/security/voter/CommentVoter.kt @@ -3,8 +3,8 @@ package fr.dcproject.security.voter import fr.dcproject.entity.Comment import io.ktor.application.ApplicationCall -class CommentVoter: Voter { - enum class Action: ActionI { +class CommentVoter : Voter { + enum class Action : ActionI { CREATE, UPDATE, VIEW, @@ -12,8 +12,8 @@ class CommentVoter: Voter { } override fun supports(action: ActionI, call: ApplicationCall, subject: Any?): Boolean { - return (action is Action) && - (subject is Comment<*>? || subject is List<*>) + return (action is Action) + .and(subject is Comment<*>? || subject is List<*>) } override fun vote(action: ActionI, call: ApplicationCall, subject: Any?): Vote { diff --git a/src/main/kotlin/fr/dcproject/security/voter/ConstitutionVoter.kt b/src/main/kotlin/fr/dcproject/security/voter/ConstitutionVoter.kt index b514e81..8f1f57e 100644 --- a/src/main/kotlin/fr/dcproject/security/voter/ConstitutionVoter.kt +++ b/src/main/kotlin/fr/dcproject/security/voter/ConstitutionVoter.kt @@ -6,8 +6,8 @@ import io.ktor.application.ApplicationCall import fr.dcproject.entity.Constitution as ConstitutionEntity import fr.dcproject.entity.Vote as VoteEntity -class ConstitutionVoter: Voter { - enum class Action: ActionI { +class ConstitutionVoter : Voter { + enum class Action : ActionI { CREATE, UPDATE, VIEW, @@ -16,8 +16,7 @@ class ConstitutionVoter: Voter { override fun supports(action: ActionI, call: ApplicationCall, subject: Any?): Boolean { return (action is Action || action is CommentVoter.Action || action is VoteVoter.Action) - && - (subject is List<*> || subject is ConstitutionEntity? || subject is VoteEntity<*> || subject is Comment<*>) + .and(subject is List<*> || subject is ConstitutionEntity? || subject is VoteEntity<*> || subject is Comment<*>) } override fun vote(action: ActionI, call: ApplicationCall, subject: Any?): Vote { diff --git a/src/main/kotlin/fr/dcproject/security/voter/FollowVoter.kt b/src/main/kotlin/fr/dcproject/security/voter/FollowVoter.kt index 519c81a..d19fa73 100644 --- a/src/main/kotlin/fr/dcproject/security/voter/FollowVoter.kt +++ b/src/main/kotlin/fr/dcproject/security/voter/FollowVoter.kt @@ -4,16 +4,16 @@ import io.ktor.application.ApplicationCall import fr.dcproject.entity.Follow as FollowEntity import fr.dcproject.entity.User as UserEntity -class FollowVoter: Voter { - enum class Action: ActionI { +class FollowVoter : Voter { + enum class Action : ActionI { CREATE, DELETE, VIEW } override fun supports(action: ActionI, call: ApplicationCall, subject: Any?): Boolean { - return (action is Action) && - (subject is List<*> || subject is FollowEntity<*>?) + return (action is Action) + .and(subject is List<*> || subject is FollowEntity<*>?) } override fun vote(action: ActionI, call: ApplicationCall, subject: Any?): Vote { diff --git a/src/main/kotlin/fr/dcproject/security/voter/VoteVoter.kt b/src/main/kotlin/fr/dcproject/security/voter/VoteVoter.kt index e2cf46d..8cef8e4 100644 --- a/src/main/kotlin/fr/dcproject/security/voter/VoteVoter.kt +++ b/src/main/kotlin/fr/dcproject/security/voter/VoteVoter.kt @@ -3,16 +3,16 @@ package fr.dcproject.security.voter import io.ktor.application.ApplicationCall import fr.dcproject.entity.Vote as VoteEntity -class VoteVoter: Voter { - enum class Action: ActionI { +class VoteVoter : Voter { + enum class Action : ActionI { CREATE, VIEW } override fun supports(action: ActionI, call: ApplicationCall, subject: Any?): Boolean { return action is Action && ( - subject is VoteEntity<*>? - || subject is List<*> + subject is VoteEntity<*>? || + subject is List<*> ) } diff --git a/src/main/kotlin/fr/dcproject/utils/LoggerDelegate.kt b/src/main/kotlin/fr/dcproject/utils/LoggerDelegate.kt index f495ea8..6475e10 100644 --- a/src/main/kotlin/fr/dcproject/utils/LoggerDelegate.kt +++ b/src/main/kotlin/fr/dcproject/utils/LoggerDelegate.kt @@ -5,6 +5,6 @@ import org.slf4j.LoggerFactory import kotlin.properties.ReadOnlyProperty import kotlin.reflect.KProperty -internal class LoggerDelegate: ReadOnlyProperty { +internal class LoggerDelegate : ReadOnlyProperty { override fun getValue(thisRef: R, property: KProperty<*>) = LoggerFactory.getLogger(thisRef.javaClass.packageName) } \ No newline at end of file diff --git a/src/test/kotlin/MailerTest.kt b/src/test/kotlin/MailerTest.kt index 4642eb8..01ca222 100644 --- a/src/test/kotlin/MailerTest.kt +++ b/src/test/kotlin/MailerTest.kt @@ -16,7 +16,7 @@ import org.koin.test.get @KtorExperimentalLocationsAPI @KtorExperimentalAPI @TestInstance(TestInstance.Lifecycle.PER_CLASS) -class MailerTest: KoinTest, AutoCloseKoinTest() { +class MailerTest : KoinTest, AutoCloseKoinTest() { @Test fun `can be send an email`() { withTestApplication({ module(Env.TEST) }) { diff --git a/src/test/kotlin/RepositoryTest.kt b/src/test/kotlin/RepositoryTest.kt deleted file mode 100644 index 30eea20..0000000 --- a/src/test/kotlin/RepositoryTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -import fr.dcproject.Env -import fr.dcproject.module -import io.ktor.locations.KtorExperimentalLocationsAPI -import io.ktor.server.testing.withTestApplication -import io.ktor.util.KtorExperimentalAPI -import org.amshove.kluent.shouldBe -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.TestInstance -import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS -import org.koin.test.AutoCloseKoinTest -import org.koin.test.KoinTest -import org.koin.test.get -import fr.dcproject.repository.Article as RepositoryArticle -import fr.dcproject.repository.Constitution as RepositoryConstitution - -@KtorExperimentalLocationsAPI -@KtorExperimentalAPI -@TestInstance(PER_CLASS) -class RepositoryTest: KoinTest, AutoCloseKoinTest() { - @Test - fun `test get repository`() { - withTestApplication({ module(Env.TEST) }) { - val repoArticle = get() - (repoArticle is RepositoryArticle) shouldBe true - - val repoConstitution = get() - (repoConstitution is RepositoryConstitution) shouldBe true - } - } -} diff --git a/src/test/kotlin/RunCucumberTest.kt b/src/test/kotlin/RunCucumberTest.kt index 270bfe6..5ee4dfe 100644 --- a/src/test/kotlin/RunCucumberTest.kt +++ b/src/test/kotlin/RunCucumberTest.kt @@ -24,7 +24,7 @@ var unitialized: Boolean = false @KtorExperimentalLocationsAPI @RunWith(Cucumber::class) @CucumberOptions(plugin = ["pretty"]) -class RunCucumberTest: En, KoinTest { +class RunCucumberTest : En, KoinTest { private val logger: Logger? by LoggerDelegate() val ktorContext = KtorServerContext { @@ -44,7 +44,7 @@ class RunCucumberTest: En, KoinTest { unitialized = true } - Before(-1) { scenario: Scenario -> + Before(-1) { _: Scenario -> config.database = "test" config.username = "test" config.password = "test" diff --git a/src/test/kotlin/feature/ArticleSteps.kt b/src/test/kotlin/feature/ArticleSteps.kt index 1d294b9..d708c25 100644 --- a/src/test/kotlin/feature/ArticleSteps.kt +++ b/src/test/kotlin/feature/ArticleSteps.kt @@ -14,7 +14,7 @@ import fr.dcproject.entity.User as UserEntity import fr.dcproject.repository.Article as ArticleRepository import fr.dcproject.repository.Citizen as CitizenRepository -class ArticleSteps: En, KoinTest { +class ArticleSteps : En, KoinTest { init { Given("I have article with id {string}") { id: String -> var citizen = Citizen( diff --git a/src/test/kotlin/feature/ConstitutionSteps.kt b/src/test/kotlin/feature/ConstitutionSteps.kt index 4405729..6c35d6b 100644 --- a/src/test/kotlin/feature/ConstitutionSteps.kt +++ b/src/test/kotlin/feature/ConstitutionSteps.kt @@ -13,7 +13,7 @@ import fr.dcproject.entity.User as UserEntity import fr.dcproject.repository.Citizen as CitizenRepository import fr.dcproject.repository.Constitution as ConstitutionRepository -class ConstitutionSteps: En, KoinTest { +class ConstitutionSteps : En, KoinTest { init { Given("I have constitution with id {string}") { id: String -> var citizen = Citizen( diff --git a/src/test/kotlin/feature/KtorServerAuthSteps.kt b/src/test/kotlin/feature/KtorServerAuthSteps.kt index 1e9d618..e313628 100644 --- a/src/test/kotlin/feature/KtorServerAuthSteps.kt +++ b/src/test/kotlin/feature/KtorServerAuthSteps.kt @@ -17,8 +17,8 @@ import java.util.concurrent.CompletionException import kotlin.random.Random import fr.dcproject.repository.Citizen as CitizenRepository -class KtorServerAuthSteps: En, KoinTest { - private val requester: Requester by inject() +class KtorServerAuthSteps : En, KoinTest { + private val requester: Requester by inject() init { When("I have citizen:") { body: DataTable -> val user = User(username = "jaque_${Random.nextInt(0, 10000)}", plainPassword = "azerty") @@ -53,7 +53,7 @@ class KtorServerAuthSteps: En, KoinTest { val citizen = Citizen( id = UUID.fromString(id), name = Citizen.Name(firstName, lastName), - email = ("$firstName-$lastName".toLowerCase())+"@dc-project.fr", + email = ("$firstName-$lastName".toLowerCase()) + "@dc-project.fr", birthday = DateTime.now(), user = user )