forked from github/wulkanowy-mirror
Refactor login module (#151)
This commit is contained in:

committed by
Mikołaj Pich

parent
64b0919b7f
commit
a90d5cb9c3
13
app/src/test/java/io/github/wulkanowy/TestSchedulers.kt
Normal file
13
app/src/test/java/io/github/wulkanowy/TestSchedulers.kt
Normal file
@ -0,0 +1,13 @@
|
||||
package io.github.wulkanowy
|
||||
|
||||
import io.github.wulkanowy.utils.schedulers.SchedulersManager
|
||||
import io.reactivex.Scheduler
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
|
||||
class TestSchedulers : SchedulersManager {
|
||||
|
||||
override fun backgroundThread(): Scheduler = Schedulers.trampoline()
|
||||
|
||||
override fun mainThread(): Scheduler = Schedulers.trampoline()
|
||||
}
|
||||
|
@ -1,36 +0,0 @@
|
||||
package io.github.wulkanowy.data.db.dao.entities;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class GradeTest {
|
||||
|
||||
@Test
|
||||
public void equalsTest() {
|
||||
Assert.assertTrue(new Grade().setSubject("Religia").setValue("5")
|
||||
.equals(new Grade().setSubject("Religia").setValue("5")));
|
||||
|
||||
Assert.assertFalse(new Grade().setSubject("Religia").setValue("4")
|
||||
.equals(new Grade().setSubject("Religia").setValue("5")));
|
||||
|
||||
Assert.assertEquals(new Grade().setSubject("Religia").setValue("5").hashCode(),
|
||||
new Grade().setSubject("Religia").setValue("5").hashCode());
|
||||
|
||||
Assert.assertFalse(new Grade().setSubject("Informatyka")
|
||||
.equals(new FakeGrade().setSubject("Informatyka")));
|
||||
|
||||
Assert.assertFalse(new Grade().setSubject("Informatyka")
|
||||
.equals(null));
|
||||
}
|
||||
|
||||
private class FakeGrade {
|
||||
|
||||
private String subject;
|
||||
|
||||
private FakeGrade setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
this.subject = this.subject + subject;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package io.github.wulkanowy.data.repositories.remote
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParent
|
||||
import io.github.wulkanowy.api.Vulcan
|
||||
import io.github.wulkanowy.api.generic.School
|
||||
import io.github.wulkanowy.api.login.AccountPermissionException
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentMatchers.any
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.*
|
||||
import org.mockito.MockitoAnnotations
|
||||
import io.github.wulkanowy.api.generic.Student as StudentApi
|
||||
|
||||
class StudentRemoteTest {
|
||||
|
||||
@Mock
|
||||
private lateinit var mockApi: Vulcan
|
||||
|
||||
@Before
|
||||
fun initApi() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
doNothing().`when`(mockApi).setCredentials(any(), any(), any(), any(), any(), any())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testRemoteAll() {
|
||||
`when`(mockApi.symbols).thenReturn(mutableListOf("przeworsk", "jaroslaw", "zarzecze"))
|
||||
`when`(mockApi.schools).thenReturn(mutableListOf(
|
||||
School("ZSTIO", "123", false),
|
||||
School("ZSZ", "998", true)))
|
||||
|
||||
val mockSnP = mock(StudentAndParent::class.java)
|
||||
`when`(mockSnP.students).thenReturn(mutableListOf(
|
||||
StudentApi().apply {
|
||||
id = "20"
|
||||
name = "Włodzimierz"
|
||||
isCurrent = false
|
||||
}))
|
||||
`when`(mockApi.studentAndParent).thenReturn(mockSnP)
|
||||
|
||||
val students = StudentRemote(mockApi).getConnectedStudents("", "", "").blockingGet()
|
||||
assert(students.size == 6)
|
||||
assert(students[3].studentName == "Włodzimierz")
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testOneEmptySymbol() {
|
||||
doReturn(mutableListOf("przeworsk")).`when`(mockApi).symbols
|
||||
doThrow(AccountPermissionException::class.java).`when`(mockApi).schools
|
||||
|
||||
val students = StudentRemote(mockApi).getConnectedStudents("", "", "").blockingGet()
|
||||
assert(students.isEmpty())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDefaultSymbol() {
|
||||
doReturn(listOf("Default")).`when`(mockApi).symbols
|
||||
|
||||
val students = StudentRemote(mockApi).getConnectedStudents("", "", "").blockingGet()
|
||||
assert(students.isEmpty())
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package io.github.wulkanowy.ui.login
|
||||
|
||||
import org.junit.Assert.assertNotEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.*
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
class LoginPresenterTest {
|
||||
|
||||
@Mock
|
||||
lateinit var loginView: LoginView
|
||||
|
||||
@Mock
|
||||
lateinit var errorHandler: LoginErrorHandler
|
||||
|
||||
private lateinit var presenter: LoginPresenter
|
||||
|
||||
@Before
|
||||
fun initPresenter() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
clearInvocations(loginView)
|
||||
presenter = LoginPresenter(errorHandler)
|
||||
presenter.attachView(loginView)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun initViewTest() {
|
||||
verify(loginView).initAdapter()
|
||||
verify(loginView).hideActionBar()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onPageSelectedTest() {
|
||||
presenter.onPageSelected(1)
|
||||
verify(loginView).loadOptionsView(1)
|
||||
|
||||
presenter.onPageSelected(0)
|
||||
verify(loginView, never()).loadOptionsView(0)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onSwitchFragmentTest() {
|
||||
presenter.onSwitchFragment(4)
|
||||
verify(loginView).switchView(4)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onBackPressedTest() {
|
||||
clearInvocations(loginView)
|
||||
doReturn(1).`when`(loginView).currentViewPosition()
|
||||
presenter.onBackPressed { }
|
||||
verify(loginView).switchView(0)
|
||||
verify(loginView).hideActionBar()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onBackPressedDefaultTest() {
|
||||
var i = 0
|
||||
doReturn(0).`when`(loginView).currentViewPosition()
|
||||
presenter.onBackPressed { i++ }
|
||||
assertNotEquals(0, i)
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,152 @@
|
||||
package io.github.wulkanowy.ui.login.form
|
||||
|
||||
import io.github.wulkanowy.TestSchedulers
|
||||
import io.github.wulkanowy.data.db.entities.Student
|
||||
import io.github.wulkanowy.data.repositories.StudentRepository
|
||||
import io.github.wulkanowy.ui.login.LoginErrorHandler
|
||||
import io.reactivex.Single
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentMatchers.anyString
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.*
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
class LoginFormPresenterTest {
|
||||
|
||||
@Mock
|
||||
lateinit var loginFormView: LoginFormView
|
||||
|
||||
@Mock
|
||||
lateinit var repository: StudentRepository
|
||||
|
||||
@Mock
|
||||
lateinit var errorHandler: LoginErrorHandler
|
||||
|
||||
private lateinit var presenter: LoginFormPresenter
|
||||
|
||||
@Before
|
||||
fun initPresenter() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
clearInvocations(repository, loginFormView)
|
||||
presenter = LoginFormPresenter(TestSchedulers(), errorHandler, repository)
|
||||
presenter.attachView(loginFormView)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun initViewTest() {
|
||||
verify(loginFormView).initInputs()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun emptyEmailLoginTest() {
|
||||
presenter.attemptLogin("", "test123", "test")
|
||||
|
||||
verify(loginFormView).setErrorEmailRequired()
|
||||
verify(loginFormView, never()).setErrorPassRequired(false)
|
||||
verify(loginFormView, never()).setErrorSymbolRequire()
|
||||
verify(loginFormView, never()).setErrorEmailInvalid()
|
||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun invalidEmailLoginTest() {
|
||||
presenter.attemptLogin("test", "test123", "test")
|
||||
|
||||
verify(loginFormView, never()).setErrorEmailRequired()
|
||||
verify(loginFormView, never()).setErrorPassRequired(false)
|
||||
verify(loginFormView, never()).setErrorSymbolRequire()
|
||||
verify(loginFormView).setErrorEmailInvalid()
|
||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun emptyPassLoginTest() {
|
||||
presenter.attemptLogin("@", "", "test")
|
||||
|
||||
verify(loginFormView, never()).setErrorEmailRequired()
|
||||
verify(loginFormView).setErrorPassRequired(true)
|
||||
verify(loginFormView, never()).setErrorSymbolRequire()
|
||||
verify(loginFormView, never()).setErrorEmailInvalid()
|
||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun invalidPassLoginTest() {
|
||||
presenter.attemptLogin("@", "123", "test")
|
||||
|
||||
verify(loginFormView, never()).setErrorEmailRequired()
|
||||
verify(loginFormView, never()).setErrorPassRequired(true)
|
||||
verify(loginFormView, never()).setErrorSymbolRequire()
|
||||
verify(loginFormView, never()).setErrorEmailInvalid()
|
||||
verify(loginFormView).setErrorPassInvalid(true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun emptySymbolLoginTest() {
|
||||
doReturn(Single.just(emptyList<Student>()))
|
||||
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
|
||||
presenter.attemptLogin("@", "12345", "")
|
||||
presenter.attemptLogin("@", "12345", "")
|
||||
|
||||
verify(loginFormView).setErrorSymbolRequire()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun loginTest() {
|
||||
val studentTest = Student(email = "test@", password = "123")
|
||||
doReturn(Single.just(listOf(studentTest)))
|
||||
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
|
||||
presenter.attemptLogin("@", "12345", "test")
|
||||
|
||||
verify(loginFormView).hideSoftKeyboard()
|
||||
verify(loginFormView).showLoginProgress(true)
|
||||
verify(repository).clearCache()
|
||||
verify(loginFormView).showLoginProgress(false)
|
||||
verify(loginFormView).switchNextView()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun loginEmptyTest() {
|
||||
doReturn(Single.just(emptyList<Student>()))
|
||||
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
|
||||
presenter.attemptLogin("@", "12345", "test")
|
||||
|
||||
verify(loginFormView).hideSoftKeyboard()
|
||||
verify(loginFormView).showLoginProgress(true)
|
||||
verify(repository).clearCache()
|
||||
verify(loginFormView).showLoginProgress(false)
|
||||
verify(loginFormView).showSymbolInput()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun loginEmptyTwiceTest() {
|
||||
doReturn(Single.just(emptyList<Student>()))
|
||||
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
|
||||
presenter.attemptLogin("@", "12345", "")
|
||||
presenter.attemptLogin("@", "12345", "test")
|
||||
|
||||
verify(loginFormView, times(2)).hideSoftKeyboard()
|
||||
verify(loginFormView, times(2)).showLoginProgress(true)
|
||||
verify(repository, times(2)).clearCache()
|
||||
verify(loginFormView, times(2)).showLoginProgress(false)
|
||||
verify(loginFormView, times(2)).showSymbolInput()
|
||||
verify(loginFormView).setErrorSymbolIncorrect()
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
fun loginErrorTest() {
|
||||
val testException = RuntimeException()
|
||||
doReturn(Single.error<List<Student>>(testException))
|
||||
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
|
||||
presenter.attemptLogin("@", "12345", "test")
|
||||
|
||||
verify(loginFormView).hideSoftKeyboard()
|
||||
verify(loginFormView).showLoginProgress(true)
|
||||
verify(repository).clearCache()
|
||||
verify(loginFormView).showLoginProgress(false)
|
||||
verify(errorHandler).proceed(testException)
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,78 @@
|
||||
package io.github.wulkanowy.ui.login.options
|
||||
|
||||
import io.github.wulkanowy.TestSchedulers
|
||||
import io.github.wulkanowy.data.ErrorHandler
|
||||
import io.github.wulkanowy.data.db.entities.Student
|
||||
import io.github.wulkanowy.data.repositories.StudentRepository
|
||||
import io.reactivex.Single
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.*
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
class LoginOptionsPresenterTest {
|
||||
|
||||
@Mock
|
||||
lateinit var errorHandler: ErrorHandler
|
||||
|
||||
@Mock
|
||||
lateinit var loginOptionsView: LoginOptionsView
|
||||
|
||||
@Mock
|
||||
lateinit var repository: StudentRepository
|
||||
|
||||
private lateinit var presenter: LoginOptionsPresenter
|
||||
|
||||
private val testStudent by lazy { Student(email = "test", password = "test123") }
|
||||
|
||||
private val testException by lazy { RuntimeException("Problem") }
|
||||
|
||||
@Before
|
||||
fun initPresenter() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
clearInvocations(repository, loginOptionsView)
|
||||
presenter = LoginOptionsPresenter(errorHandler, repository, TestSchedulers())
|
||||
presenter.attachView(loginOptionsView)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun initViewTest() {
|
||||
verify(loginOptionsView).initRecycler()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun refreshDataTest() {
|
||||
doReturn(Single.just(listOf(testStudent))).`when`(repository).cachedStudents
|
||||
presenter.refreshData()
|
||||
verify(loginOptionsView).showActionBar(true)
|
||||
verify(loginOptionsView).updateData(listOf(LoginOptionsItem(testStudent)))
|
||||
verify(repository).clearCache()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun refreshDataErrorTest() {
|
||||
doReturn(Single.error<List<Student>>(testException)).`when`(repository).cachedStudents
|
||||
presenter.refreshData()
|
||||
verify(loginOptionsView).showActionBar(true)
|
||||
verify(errorHandler).proceed(testException)
|
||||
verify(repository).clearCache()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onSelectedStudentTest() {
|
||||
presenter.onSelectStudent(testStudent)
|
||||
verify(repository).save(testStudent)
|
||||
verify(loginOptionsView).showLoginProgress(true)
|
||||
verify(loginOptionsView).openMainView()
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onSelectedStudentErrorTest() {
|
||||
doThrow(testException).`when`(repository).save(testStudent)
|
||||
presenter.onSelectStudent(testStudent)
|
||||
verify(loginOptionsView).showLoginProgress(true)
|
||||
verify(errorHandler).proceed(testException)
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package io.github.wulkanowy.ui.splash
|
||||
|
||||
import io.github.wulkanowy.data.ErrorHandler
|
||||
import io.github.wulkanowy.data.repositories.StudentRepository
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.doReturn
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
class SplashPresenterTest {
|
||||
|
||||
@Mock
|
||||
lateinit var splashView: SplashView
|
||||
|
||||
@Mock
|
||||
lateinit var studentRepository: StudentRepository
|
||||
|
||||
@Mock
|
||||
lateinit var errorHandler: ErrorHandler
|
||||
|
||||
private lateinit var presenter: SplashPresenter
|
||||
|
||||
@Before
|
||||
fun initPresenter() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
presenter = SplashPresenter(studentRepository, errorHandler)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testOpenLoginView() {
|
||||
doReturn(false).`when`(studentRepository).isStudentLoggedIn
|
||||
presenter.attachView(splashView)
|
||||
verify(splashView).openLoginActivity()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMainMainView() {
|
||||
doReturn(true).`when`(studentRepository).isStudentLoggedIn
|
||||
presenter.attachView(splashView)
|
||||
verify(splashView).openMainActivity()
|
||||
}
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
package io.github.wulkanowy.utils;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.generic.Day;
|
||||
import io.github.wulkanowy.api.generic.Lesson;
|
||||
import io.github.wulkanowy.api.grades.Grade;
|
||||
import io.github.wulkanowy.api.grades.Subject;
|
||||
import io.github.wulkanowy.data.db.dao.entities.TimetableLesson;
|
||||
|
||||
public class DataObjectConverterTest {
|
||||
|
||||
@Test
|
||||
public void subjectConversionTest() {
|
||||
List<Subject> subjectList = new ArrayList<>();
|
||||
subjectList.add(new Subject().setName("Matematyka"));
|
||||
List<io.github.wulkanowy.data.db.dao.entities.Subject> subjectEntitiesList =
|
||||
DataObjectConverter.subjectsToSubjectEntities(subjectList, 1L);
|
||||
|
||||
Assert.assertEquals("Matematyka", subjectEntitiesList.get(0).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subjectConversionEmptyTest() {
|
||||
Assert.assertEquals(new ArrayList<>(),
|
||||
DataObjectConverter.subjectsToSubjectEntities(new ArrayList<Subject>(), 1L));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void gradesConversionTest() {
|
||||
List<Grade> gradeList = new ArrayList<>();
|
||||
gradeList.add(new Grade().setDescription("Lorem ipsum"));
|
||||
List<io.github.wulkanowy.data.db.dao.entities.Grade> gradeEntitiesList =
|
||||
DataObjectConverter.gradesToGradeEntities(gradeList, 1L);
|
||||
|
||||
Assert.assertEquals("Lorem ipsum", gradeEntitiesList.get(0).getDescription());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void gradeConversionEmptyTest() {
|
||||
Assert.assertEquals(new ArrayList<>(),
|
||||
DataObjectConverter.gradesToGradeEntities(new ArrayList<Grade>(), 1L));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dayConversionEmptyTest() {
|
||||
Assert.assertEquals(new ArrayList<>(),
|
||||
DataObjectConverter.daysToDaysEntities(new ArrayList<Day>()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dayConversionTest() {
|
||||
List<Day> dayList = new ArrayList<>();
|
||||
dayList.add(new Day().setDate("20.12.2012"));
|
||||
List<io.github.wulkanowy.data.db.dao.entities.Day> dayEntityList =
|
||||
DataObjectConverter.daysToDaysEntities(dayList);
|
||||
|
||||
Assert.assertEquals("20.12.2012", dayEntityList.get(0).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lessonConversionEmptyTest() {
|
||||
Assert.assertEquals(new ArrayList<>(),
|
||||
DataObjectConverter.lessonsToTimetableLessonsEntities(new ArrayList<Lesson>()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lessonConversionTest() {
|
||||
List<Lesson> lessonList = new ArrayList<>();
|
||||
lessonList.add(new Lesson().setRoom("20"));
|
||||
List<TimetableLesson> lessonEntityList =
|
||||
DataObjectConverter.lessonsToTimetableLessonsEntities(lessonList);
|
||||
|
||||
Assert.assertEquals("20", lessonEntityList.get(0).getRoom());
|
||||
}
|
||||
}
|
@ -1,105 +0,0 @@
|
||||
package io.github.wulkanowy.utils;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.data.db.dao.entities.Grade;
|
||||
|
||||
|
||||
public class EntitiesCompareTest {
|
||||
|
||||
private List<Grade> newList = new ArrayList<>();
|
||||
|
||||
private List<Grade> oldList = new ArrayList<>();
|
||||
|
||||
private Grade grade1;
|
||||
|
||||
private Grade grade2;
|
||||
|
||||
@Before
|
||||
public void prepareObjects() {
|
||||
grade1 = new Grade()
|
||||
.setSubject("Matematyka")
|
||||
.setValue("6")
|
||||
.setColor("FFFFFF")
|
||||
.setSymbol("S")
|
||||
.setDescription("Lorem ipsum")
|
||||
.setWeight("10")
|
||||
.setDate("01.01.2017")
|
||||
.setTeacher("Andrzej");
|
||||
|
||||
grade2 = new Grade()
|
||||
.setSubject("Religia")
|
||||
.setValue("6")
|
||||
.setColor("FFFFFF")
|
||||
.setSymbol("S")
|
||||
.setDescription("Wolna wola")
|
||||
.setWeight("10")
|
||||
.setDate("01.01.2017")
|
||||
.setTeacher("Andrzej");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCompareNewGradeEmptyOldList() {
|
||||
|
||||
newList.add(grade1);
|
||||
|
||||
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
|
||||
|
||||
Assert.assertTrue(updatedList.get(0).getRead());
|
||||
Assert.assertTrue(updatedList.get(0).getIsNew());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCompareNewGradePositive() {
|
||||
newList.add(grade1);
|
||||
newList.add(grade2);
|
||||
oldList.add(grade2);
|
||||
|
||||
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
|
||||
|
||||
Assert.assertFalse(updatedList.get(0).getIsNew());
|
||||
Assert.assertTrue(updatedList.get(1).getIsNew());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCompareNewGradeNegative() {
|
||||
|
||||
newList.add(grade1);
|
||||
newList.add(grade1);
|
||||
oldList.add(grade1);
|
||||
oldList.add(grade2);
|
||||
|
||||
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
|
||||
|
||||
Assert.assertFalse(updatedList.get(0).getIsNew());
|
||||
Assert.assertFalse(updatedList.get(1).getIsNew());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCompareEmptyGradeList() {
|
||||
|
||||
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
|
||||
|
||||
Assert.assertEquals(new ArrayList<>(), updatedList);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCompareReadGradeTest() {
|
||||
newList.add(grade1);
|
||||
newList.add(grade2);
|
||||
oldList.add(grade2.setRead(true));
|
||||
|
||||
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
|
||||
|
||||
Assert.assertTrue(updatedList.get(0).getRead());
|
||||
Assert.assertFalse(updatedList.get(0).getIsNew());
|
||||
Assert.assertFalse(updatedList.get(1).getRead());
|
||||
Assert.assertTrue(updatedList.get(1).getIsNew());
|
||||
}
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
package io.github.wulkanowy.utils;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.R;
|
||||
import io.github.wulkanowy.data.db.dao.entities.Grade;
|
||||
import io.github.wulkanowy.data.db.dao.entities.Subject;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class GradeUtilsTest {
|
||||
|
||||
@Test
|
||||
public void weightedAverageTest() {
|
||||
List<Grade> gradeList = new ArrayList<>();
|
||||
gradeList.add(new Grade().setValue("np.").setWeight("1,00"));
|
||||
gradeList.add(new Grade().setValue("-5").setWeight("10,00"));
|
||||
gradeList.add(new Grade().setValue("--5").setWeight("10,00"));
|
||||
gradeList.add(new Grade().setValue("=5").setWeight("10,00"));
|
||||
gradeList.add(new Grade().setValue("+5").setWeight("10,00"));
|
||||
gradeList.add(new Grade().setValue("5").setWeight("10,00"));
|
||||
|
||||
List<Grade> gradeList1 = new ArrayList<>();
|
||||
gradeList1.add(new Grade().setValue("np.").setWeight("1,00"));
|
||||
gradeList1.add(new Grade().setValue("5-").setWeight("10,00"));
|
||||
gradeList1.add(new Grade().setValue("5--").setWeight("10,00"));
|
||||
gradeList1.add(new Grade().setValue("5=").setWeight("10,00"));
|
||||
gradeList1.add(new Grade().setValue("5+").setWeight("10,00"));
|
||||
gradeList1.add(new Grade().setValue("5").setWeight("10,00"));
|
||||
|
||||
assertEquals(4.8f, GradeUtils.calculateWeightedAverage(gradeList), 0.0f);
|
||||
assertEquals(4.8f, GradeUtils.calculateWeightedAverage(gradeList1), 0.0f);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subjectsAverageTest() {
|
||||
List<Subject> subjectList = new ArrayList<>();
|
||||
subjectList.add(new Subject().setPredictedRating("2").setFinalRating("3"));
|
||||
subjectList.add(new Subject().setPredictedRating("niedostateczny").setFinalRating("dopuszczający"));
|
||||
subjectList.add(new Subject().setPredictedRating("dostateczny").setFinalRating("dobry"));
|
||||
subjectList.add(new Subject().setPredictedRating("bardzo dobry").setFinalRating("celujący"));
|
||||
subjectList.add(new Subject().setPredictedRating("2/3").setFinalRating("-4"));
|
||||
|
||||
assertEquals(3.8f, GradeUtils.calculateSubjectsAverage(subjectList, false), 0.0f);
|
||||
assertEquals(2.75f, GradeUtils.calculateSubjectsAverage(subjectList, true), 0.0f);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void abnormalAverageTest() {
|
||||
List<Grade> gradeList = new ArrayList<>();
|
||||
gradeList.add(new Grade().setValue("np.").setWeight("1,00"));
|
||||
|
||||
List<Subject> subjectList = new ArrayList<>();
|
||||
subjectList.add(new Subject().setFinalRating("nieklasyfikowany"));
|
||||
|
||||
assertEquals(-1f, GradeUtils.calculateWeightedAverage(gradeList), 0.0f);
|
||||
assertEquals(-1f, GradeUtils.calculateSubjectsAverage(subjectList, false), 0.0f);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getValueColorTest() {
|
||||
assertEquals(R.color.grade_six, GradeUtils.getValueColor("-6"));
|
||||
assertEquals(R.color.grade_five, GradeUtils.getValueColor("--5"));
|
||||
assertEquals(R.color.grade_four, GradeUtils.getValueColor("=4"));
|
||||
assertEquals(R.color.grade_three, GradeUtils.getValueColor("3-"));
|
||||
assertEquals(R.color.grade_two, GradeUtils.getValueColor("2--"));
|
||||
assertEquals(R.color.grade_two, GradeUtils.getValueColor("2="));
|
||||
assertEquals(R.color.grade_one, GradeUtils.getValueColor("1+"));
|
||||
assertEquals(R.color.grade_one, GradeUtils.getValueColor("+1"));
|
||||
assertEquals(R.color.grade_default, GradeUtils.getValueColor("6 (.XI)"));
|
||||
assertEquals(R.color.grade_default, GradeUtils.getValueColor("Np"));
|
||||
assertEquals(R.color.grade_default, GradeUtils.getValueColor("7"));
|
||||
assertEquals(R.color.grade_default, GradeUtils.getValueColor(""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getShortGradeValueTest() {
|
||||
assertEquals("6", GradeUtils.getShortGradeValue("celujący"));
|
||||
assertEquals("1", GradeUtils.getShortGradeValue("niedostateczny"));
|
||||
assertEquals("wzorowe", GradeUtils.getShortGradeValue("wzorowe"));
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
package io.github.wulkanowy.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class NetworkUtilsTest {
|
||||
|
||||
@Test
|
||||
public void isOnlineTrueTest() {
|
||||
NetworkInfo networkInfo = mock(NetworkInfo.class);
|
||||
when(networkInfo.isConnectedOrConnecting()).thenReturn(true);
|
||||
|
||||
ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
|
||||
when(connectivityManager.getActiveNetworkInfo()).thenReturn(networkInfo);
|
||||
|
||||
Context context = mock(Context.class);
|
||||
when(context.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(connectivityManager);
|
||||
|
||||
Assert.assertTrue(NetworkUtils.isOnline(context));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isOnlineFalseTest() {
|
||||
NetworkInfo networkInfo = mock(NetworkInfo.class);
|
||||
when(networkInfo.isConnectedOrConnecting()).thenReturn(false);
|
||||
|
||||
ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
|
||||
when(connectivityManager.getActiveNetworkInfo()).thenReturn(networkInfo);
|
||||
|
||||
Context context = mock(Context.class);
|
||||
when(context.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(connectivityManager);
|
||||
|
||||
Assert.assertFalse(NetworkUtils.isOnline(context));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user