[ADD] Test paramétré pour jouer une seule action

Android
Renaud BEURET 1 year ago
parent 39da627553
commit 5c2a04fe9e

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/ScienceQuest.iml" filepath="$PROJECT_DIR$/.idea/ScienceQuest.iml" />
</modules>
</component>
</project>

@ -0,0 +1,52 @@
package fr.iut.sciencequest.viewModel.pendu
import fr.iut.sciencequest.model.dto.extensions.ToModel
import fr.iut.sciencequest.model.repositories.scientifique.ScientifiqueStubRepostory
import fr.iut.sciencequest.stub.StubScientifique1
import fr.iut.sciencequest.testRules.MainDispatcherRule
import fr.iut.sciencequest.viewModels.PenduViewModel
import org.junit.Assert
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
@RunWith(Parameterized::class)
class PenduJouerActionTest (
private val playedLetter: Char,
private val expectedLetter: Char,
private val expectedVieRestante: Int,
private val expectedResult: Boolean
){
@get:Rule
val mainDispatcherRule = MainDispatcherRule()
@Test
fun TestGoodActionPutsLetter() {
val scientifique = StubScientifique1.ToModel()
val repo = ScientifiqueStubRepostory()
repo.setScientifiqueStub(scientifique)
val vm = PenduViewModel(repo)
vm.InitPartie()
vm.PlayAction(playedLetter)
Assert.assertEquals(expectedResult, vm.uiState.value.motATrou.contains(expectedLetter))
Assert.assertEquals(expectedVieRestante, vm.uiState.value.nbViesRestantes)
}
companion object {
@JvmStatic
@Parameterized.Parameters(
name = "Quand joueur joue {0}, le jeu est censé trouvé que {1} est {2} "
)
fun getTestActionData(): Iterable<Array<Any>> {
return arrayListOf(
arrayOf('e','e',10,true),
arrayOf('q','q',9,false),
arrayOf('E','e',10,true),
arrayOf('j','J',10,true),
arrayOf('J','J',10,true),
)
}
}
}

@ -1,7 +1,6 @@
package fr.iut.sciencequest.viewModel package fr.iut.sciencequest.viewModel.pendu
import fr.iut.sciencequest.model.dto.extensions.ToModel import fr.iut.sciencequest.model.dto.extensions.ToModel
import fr.iut.sciencequest.model.metier.Scientifique
import fr.iut.sciencequest.model.repositories.scientifique.ScientifiqueStubRepostory import fr.iut.sciencequest.model.repositories.scientifique.ScientifiqueStubRepostory
import fr.iut.sciencequest.stub.StubScientifique1 import fr.iut.sciencequest.stub.StubScientifique1
import fr.iut.sciencequest.testRules.MainDispatcherRule import fr.iut.sciencequest.testRules.MainDispatcherRule
@ -9,8 +8,6 @@ import fr.iut.sciencequest.viewModels.PenduViewModel
import org.junit.Assert import org.junit.Assert
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
class PenduViewModelTest { class PenduViewModelTest {
@get:Rule @get:Rule
@ -29,17 +26,6 @@ class PenduViewModelTest {
Assert.assertEquals(trou, vm.uiState.value.motATrou) Assert.assertEquals(trou, vm.uiState.value.motATrou)
} }
@Test
fun TestGoodActionPutsLetter() {
val scientifique = StubScientifique1.ToModel()
val repo = ScientifiqueStubRepostory()
repo.setScientifiqueStub(scientifique)
val vm = PenduViewModel(repo)
vm.InitPartie()
vm.PlayAction('e')
Assert.assertEquals(true, vm.uiState.value.motATrou.contains('e'))
}
@Test @Test
fun TestWrongActionDoesNotPutLetterAndDamage() { fun TestWrongActionDoesNotPutLetterAndDamage() {
val scientifique = StubScientifique1.ToModel() val scientifique = StubScientifique1.ToModel()
@ -51,26 +37,4 @@ class PenduViewModelTest {
Assert.assertEquals(false, vm.uiState.value.motATrou.contains('q')) Assert.assertEquals(false, vm.uiState.value.motATrou.contains('q'))
Assert.assertEquals(9,vm.uiState.value.nbViesRestantes) Assert.assertEquals(9,vm.uiState.value.nbViesRestantes)
} }
@Test
fun TestGoodActionWithUppercaseLetter() {
val scientifique = StubScientifique1.ToModel()
val repo = ScientifiqueStubRepostory()
repo.setScientifiqueStub(scientifique)
val vm = PenduViewModel(repo)
vm.InitPartie()
vm.PlayAction('E')
Assert.assertEquals(true, vm.uiState.value.motATrou.contains('e'))
}
@Test
fun TestGoodActionWithLowercaseOnOriginalyUppercase() {
val scientifique = StubScientifique1.ToModel()
val repo = ScientifiqueStubRepostory()
repo.setScientifiqueStub(scientifique)
val vm = PenduViewModel(repo)
vm.InitPartie()
vm.PlayAction('j')
Assert.assertEquals(true, vm.uiState.value.motATrou.contains('j'))
}
} }
Loading…
Cancel
Save