Leni BEAULATON 2 weeks ago
commit beecdb1640

@ -20,6 +20,8 @@ interface IServices {
fun EditPasswd(passwd : String, index : Int) fun EditPasswd(passwd : String, index : Int)
fun EditImage(index : Int) : String fun EditImage(index : Int) : String
fun ChangeLangage(index : Int): SrcLanguage fun ChangeLangage(index : Int): SrcLanguage
fun isUsernameExist(username : String) : Boolean
fun isEmailExist(email : String) : Boolean
fun AddFav(userId: Int, QuoteId : Int) fun AddFav(userId: Int, QuoteId : Int)
fun SupFav(userId: Int, QuoteId : Int) fun SupFav(userId: Int, QuoteId : Int)

@ -28,7 +28,7 @@ class ServicesStub : IServices {
if (user.username == username && user.password == hashPassWd) { if (user.username == username && user.password == hashPassWd) {
initialierCurrentUser(index) initialierCurrentUser(index)
navController(index) navController(index)
logsUser.logInformationUserConnect(user, "UserConnect") //logsUser.logInformationUserConnect(user, "UserConnect")
return true return true
} }
} }
@ -45,7 +45,7 @@ class ServicesStub : IServices {
} }
//Afficher tous les users //Afficher tous les users
logsUser.logDebugUserEmail(user, "UsernameUpdate") //logsUser.logDebugUserEmail(user, "UsernameUpdate")
return false return false
} }
@ -57,7 +57,7 @@ class ServicesStub : IServices {
return true return true
} }
//Afficher tous les users //Afficher tous les users
logsUser.logDebugAllUsers(getAllUsers(), "EmailUpdate") //logsUser.logDebugAllUsers(getAllUsers(), "EmailUpdate")
return false return false
} }
@ -67,7 +67,7 @@ class ServicesStub : IServices {
user?.password = passwordhash user?.password = passwordhash
//Afficher tous les users en log //Afficher tous les users en log
logsUser.logDebugAllUsers(getAllUsers(), "PasswordUpdate") //logsUser.logDebugAllUsers(getAllUsers(), "PasswordUpdate")
} }
override fun EditImage(index : Int) : String { override fun EditImage(index : Int) : String {
@ -82,7 +82,7 @@ class ServicesStub : IServices {
getAllUsers()[index].langage = SrcLanguage.vo getAllUsers()[index].langage = SrcLanguage.vo
} }
logsUser.logDebugUserLangage(getAllUsers()[index], "ChangeLangue") //logsUser.logDebugUserLangage(getAllUsers()[index], "ChangeLangue")
return getAllUsers()[index].langage return getAllUsers()[index].langage
} }
@ -114,7 +114,7 @@ class ServicesStub : IServices {
users.add(user)//ajout au stub users.add(user)//ajout au stub
//Afficher tous les users //Afficher tous les users
logsUser.logDebugAllUsers(users, "CreateUser") //logsUser.logDebugAllUsers(users, "CreateUser")
return true return true
} }
return false return false
@ -141,8 +141,11 @@ class ServicesStub : IServices {
} }
override fun getSomeQuotes(nb: Int, page: Int): MutableList<Quote> { override fun getSomeQuotes(nb: Int, page: Int): MutableList<Quote> {
val fromIndex = (page - 1) * nb var nbQuote = nb
val toIndex = minOf(page * nb, quotes.size) if(nb < 0) nbQuote = 1
val fromIndex = (page - 1) * nbQuote
val toIndex = minOf(page * nbQuote, quotes.size)
if (fromIndex >= quotes.size) return mutableListOf() if (fromIndex >= quotes.size) return mutableListOf()
@ -172,26 +175,7 @@ class ServicesStub : IServices {
}.take(indexCount)) }.take(indexCount))
} }
//------------------------------------------------------ override fun isUsernameExist(username : String) : Boolean{
@SuppressLint("NewApi")
fun dateDuJour(): String {
val date = LocalDate.now()
return date.toString()
}
fun randomImage() : String{
val sizeList = allImages.size
val randomNb = (0..sizeList).random()
allImages.forEach{image ->
if(image.id == randomNb){
return image.url
}
}
return allImages[0].url
}
fun isUsernameExist(username : String) : Boolean{
val userStub = getAllUsers() val userStub = getAllUsers()
for (user in userStub) { for (user in userStub) {
if (user.username == username) { if (user.username == username) {
@ -201,7 +185,7 @@ class ServicesStub : IServices {
return false return false
} }
fun isEmailExist(email : String) : Boolean{ override fun isEmailExist(email : String) : Boolean{
val userStub = getAllUsers() val userStub = getAllUsers()
for (user in userStub) { for (user in userStub) {
if (user.email == email) { if (user.email == email) {
@ -210,6 +194,23 @@ class ServicesStub : IServices {
} }
return false return false
} }
//------------------------------------------------------
@SuppressLint("NewApi")
fun dateDuJour(): String {
val date = LocalDate.now()
return date.toString()
}
fun randomImage() : String{
val sizeList = allImages.size
val randomNb = (0..sizeList).random()
allImages.forEach{image ->
if(image.id == randomNb){
return image.url
}
}
return allImages[0].url
}
} }

@ -1,17 +0,0 @@
package com.example.what_the_fantasy
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}

@ -0,0 +1,130 @@
package com.example.what_the_fantasy
import org.junit.Assert.assertEquals
import org.junit.Test
import com.example.what_the_fantasy.data.services.IServices
import com.example.what_the_fantasy.data.services.ServicesStub
class UnitTestQuote {
private val services : IServices = ServicesStub()
@Test
fun testGetQuote(){
val quote = services.getQuote(1)
assertEquals("All we have to decide is what to do with the time that is given us.",quote?.content)
}
@Test
fun testGetSomeQuote_OK(){
val quote = services.getSomeQuotes(4,1)
assertEquals(4,quote.size)
}
@Test
fun testGetSomeQuoteNegatif(){
val quote = services.getSomeQuotes(-1,1)
assertEquals(1,quote.size)
}
@Test
fun testGetSomeQuote0(){
val quote = services.getSomeQuotes(0,1)
assertEquals(0,quote.size)
}
@Test
fun testSearchByFullQuote(){
val quote = services.search("contenu","I am no man.",1)
assertEquals("I am no man.",quote[0].content)
}
@Test
fun testSearchByHalfQuote(){
val quote = services.search("contenu","I am no",1)
assertEquals("I am no man.",quote[0].content)
}
@Test
fun testSearchByFullQuoteWithUpperCase(){
val quote = services.search("contenu","I aM nO MaN",1)
assertEquals("I am no man.",quote[0].content)
}
@Test
fun testSearchByHalfQuoteWithUpperCase(){
val quote = services.search("contenu","I aM nO",1)
assertEquals("I am no man.",quote[0].content)
}
@Test
fun testSearchByFullQuoteBad(){
val quote = services.search("contenu","I am no Man bad",1)
assertEquals(0,quote.size)
}
@Test
fun testSearchByFullCharacter(){
val quote = services.search("personnage","Arwen",1)
assertEquals("Arwen",quote[0].character)
}
@Test
fun testSearchByHalfCharacter(){
val quote = services.search("personnage","Arw",1)
assertEquals("Arwen",quote[0].character)
}
@Test
fun testSearchByFullCharacterWithUpperCase(){
val quote = services.search("personnage","ArwEn",1)
assertEquals("Arwen",quote[0].character)
}
@Test
fun testSearchByHalfCharacterWithUpperCase(){
val quote = services.search("personnage","Arw",1)
assertEquals("Arwen",quote[0].character)
}
@Test
fun testSearchByFullCharacterBad(){
val quote = services.search("personnage","Arwen bad",1)
assertEquals(0,quote.size)
}
@Test
fun testSearchByFullTitle(){
val quote = services.search("titre","Star Wars",1)
assertEquals("Star Wars",quote[0].source)
}
@Test
fun testSearchByHalfTitle(){
val quote = services.search("titre","Star",1)
assertEquals("Star Wars",quote[0].source)
}
@Test
fun testSearchByFullTitleWithUpperCase(){
val quote = services.search("titre","StAr WaRs",1)
assertEquals("Star Wars",quote[0].source)
}
@Test
fun testSearchByHalfTitleWithUpperCase(){
val quote = services.search("titre","StAr",1)
assertEquals("Star Wars",quote[0].source)
}
@Test
fun testSearchByTitleBad(){
val quote = services.search("titre","Star Wars bad",1)
assertEquals(0,quote.size)
}
}

@ -0,0 +1,141 @@
package com.example.what_the_fantasy
import androidx.compose.runtime.Composable
import androidx.navigation.compose.rememberNavController
import com.example.what_the_fantasy.data.model.SrcLanguage
import org.junit.Assert.assertEquals
import org.junit.Test
import com.example.what_the_fantasy.data.services.IServices
import com.example.what_the_fantasy.data.services.ServicesStub
import com.example.what_the_fantasy.data.services.hashPassword
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
class UnitTestUser {
private val services : IServices = ServicesStub()
@Test
fun testCreateUser_OK(){
assertTrue(services.CreateUser("username", "email", "passwd")
)
}
@Test
fun testCreateUserSameUsername(){
services.CreateUser("username2", "email2", "passwd")
assertFalse(services.CreateUser("username2", "emai", "passwd"))
}
@Test
fun testCreateUserSameEmail(){
services.CreateUser("username3", "email3", "passwd")
assertFalse(services.CreateUser("usernam", "email3", "passwd")
)
}
@Test
fun testUserEditUsername_OK(){
services.CreateUser("username4", "email4", "passwd")
assertTrue(services.EditUsername("newUsername",11))
}
@Test
fun testUserEditUsernameSameUsernameWithAnotherUsername(){
services.CreateUser("username5", "email5", "passwd")
assertFalse(services.EditUsername("dev",10))
}
@Test
fun testUserEditEmail_OK(){
services.CreateUser("username6", "email6", "passwd")
assertTrue(services.EditEmail("newEmail",11))
}
@Test
fun testUserEditEmailSameUsernameWithAnotherEmail(){
services.CreateUser("username7", "email7", "passwd")
assertFalse(services.EditEmail("testeur@example.com",10))
}
@Test
fun testUserEditPassword_OK(){
services.CreateUser("username8", "email8", "passwd")
services.EditPasswd("newPassword",11)
assertEquals(hashPassword("newPassword"), services.getUserById(11)?.password)
}
@Test
fun testUserChangeLangueVoAtVf(){
services.CreateUser("username9", "email9", "passwd")
services.ChangeLangage(11)
assertEquals(SrcLanguage.vf, services.getUserById(11)?.langage)
}
@Test
fun testUserChangeLangueVfAtVo(){
services.CreateUser("username10", "email10", "passwd")
services.ChangeLangage(11)
services.ChangeLangage(11)
assertEquals(SrcLanguage.vo, services.getUserById(11)?.langage)
}
@Test
fun testUserExist_OK(){
assertTrue(services.isUsernameExist("dev"))
}
@Test
fun testUserNotExist_OK(){
assertFalse(services.isUsernameExist("devNotExist"))
}
@Test
fun testEmailExist_OK(){
assertTrue(services.isEmailExist("testeur@example.com"))
}
@Test
fun testEmailNotExist_OK(){
assertFalse(services.isUsernameExist("email@example.com"))
}
@Test
fun TestUserValidLogin_OK() {
val navControllerMock: (Int) -> Unit = {}
val initialiserCurrentUserMock: (Int) -> Unit = {}
assertTrue(services.validLogin("dev", "1234", navControllerMock, initialiserCurrentUserMock))
}
@Test
fun TestUserValidLoginBadUsername() {
val navControllerMock: (Int) -> Unit = {}
val initialiserCurrentUserMock: (Int) -> Unit = {}
assertFalse(services.validLogin("devBad", "1234", navControllerMock, initialiserCurrentUserMock))
}
@Test
fun TestUserValidLoginBadPassword() {
val navControllerMock: (Int) -> Unit = {}
val initialiserCurrentUserMock: (Int) -> Unit = {}
assertFalse(services.validLogin("dev", "5678", navControllerMock, initialiserCurrentUserMock))
}
@Test
fun testGetUserById(){
val user = services.getUserById(10)
assertEquals("dev", user?.username)
}
@Test
fun testGetFavorite_User_Dev(){
val user = services.getAllUsers()[10]
val quotes = services.getFavorite(user)
assertEquals(3, quotes.size)
}
}
Loading…
Cancel
Save