[ADD] Tests ajout point

Android
Renaud BEURET 1 year ago
parent d5d5271fa8
commit b1200df54c

@ -2,6 +2,7 @@
<module version="4">
<component name="ModuleClassLoaderOverlays">
<paths>
<option value="/tmp/overlay13273965946714663874" />
<option value="/tmp/overlay16255881331565398814" />
<option value="/tmp/overlay3325279776421233033" />
</paths>

@ -0,0 +1,82 @@
package fr.iut.sciencequest.viewModel.kahoot
import android.os.Looper
import fr.iut.sciencequest.model.dto.extensions.ToModel
import fr.iut.sciencequest.model.repositories.question.QuestionStubRepository
import fr.iut.sciencequest.stub.StubQuestionWithReponses
import fr.iut.sciencequest.stub.StubQuestionWithReponses2
import fr.iut.sciencequest.testRules.MainDispatcherRule
import fr.iut.sciencequest.viewModels.KahootViewModel
import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
import org.junit.Assert
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
@RunWith(Parameterized::class)
class KahootAjouterPointTest(
val duree: Int,
val expectedPoints: Int
) {
@get:Rule
val mainDispatcherRule = MainDispatcherRule()
lateinit var viewModel: KahootViewModel
@Before
fun init() {
mockkStatic(Looper::class)
val looper = mockk<Looper> {
every { thread } returns Thread.currentThread()
}
every { Looper.getMainLooper() } returns looper
val repo = QuestionStubRepository()
repo.setQuestionsStub(arrayListOf(
StubQuestionWithReponses.ToModel()
))
viewModel = KahootViewModel(repo)
}
@Test
fun ajouterPointsJustes() {
viewModel.ajouterPoints(duree.toLong())
Assert.assertEquals(expectedPoints, viewModel.uiState.value.nbPoints)
}
@Test
fun ajouterPointsAvecTempsNegatif() {
Assert.assertThrows(IllegalArgumentException::class.java) {
viewModel.ajouterPoints(-1)
}
}
@Test
fun ajouterPointsAvecTempsTropLent() {
Assert.assertThrows(IllegalArgumentException::class.java) {
viewModel.ajouterPoints(11_000)
}
}
companion object {
@JvmStatic
@Parameterized.Parameters(
name = "Quand le joueur prend {0} ms pour faire son action, il est censé avoir {1} points"
)
fun getTestActionData(): Iterable<Array<Any>> {
return arrayListOf(
arrayOf(0,10_000),
arrayOf(2_500,7_500),
arrayOf(5_000,5_000),
arrayOf(7_500,2_500),
arrayOf(10_000,0)
)
}
}
}
Loading…
Cancel
Save