Files
dc-project/src/test/kotlin/ViewTest.kt

69 lines
1.9 KiB
Kotlin

import fr.dcproject.Env
import fr.dcproject.entity.ArticleRefVersioning
import fr.dcproject.entity.CitizenRef
import fr.dcproject.module
import fr.dcproject.views.ArticleViewManager
import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.server.testing.withTestApplication
import io.ktor.util.KtorExperimentalAPI
import org.amshove.kluent.`should be equal to`
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS
import org.koin.ktor.ext.get
import java.util.*
@KtorExperimentalLocationsAPI
@KtorExperimentalAPI
@TestInstance(PER_CLASS)
class ViewTest {
@Test
fun `test View Article`() {
val article = ArticleRefVersioning(id = UUID.randomUUID(), versionId = UUID.randomUUID())
val citizenRef = CitizenRef()
withTestApplication({ module(Env.TEST) }) {
val viewManager: ArticleViewManager = application.get()
/* Get view before */
val startView = viewManager.getViewsCount(article)
/* Add View */
viewManager.addView(
"1.2.3.4",
article,
citizenRef
)
/* Add View */
viewManager.addView(
"10.10.10.10",
article,
citizenRef
)
/* Add View */
viewManager.addView(
"8.8.8.8",
article
)
/* Add View */
viewManager.addView(
"1.1.1.1",
article
)
/* Sleep because ES is not sync ! */
Thread.sleep(1000)
/* Get view */
val afterView = viewManager.getViewsCount(article)
/* Check if view has increment */
afterView.total `should be equal to` startView.total + 4
afterView.unique `should be equal to` startView.unique + 3
}
}
}