Refactor grade module (#156)

This commit is contained in:
Rafał Borcz
2018-10-03 21:28:23 +02:00
committed by Mikołaj Pich
parent 357b2350cb
commit f2b7c0e781
119 changed files with 2629 additions and 1384 deletions

View File

@ -10,7 +10,7 @@ import org.mockito.Mock
import org.mockito.Mockito.doReturn
import org.mockito.MockitoAnnotations
class StudentRemoteTest {
class SessionRemoteTest {
@Mock
private lateinit var mockApi: Api

View File

@ -21,35 +21,27 @@ class MainPresenterTest {
fun initPresenter() {
MockitoAnnotations.initMocks(this)
clearInvocations(mainView)
presenter = MainPresenter(errorHandler)
presenter.attachView(mainView)
}
@Test
fun initMenuTest() {
verify(mainView).initBottomNav()
verify(mainView).initFragmentController()
verify(mainView).initView()
}
@Test
fun onTabSelectedTest() {
presenter.onTabSelected(1)
verify(mainView).switchMenuFragment(1)
presenter.onTabSelected(1, false)
verify(mainView).switchMenuView(1)
}
@Test
fun onMenuFragmentChangeTest() {
doReturn(mapOf(1 to "Test")).`when`(mainView).mapOfTitles()
presenter.onMenuFragmentChange(1)
doReturn("Test").`when`(mainView).viewTitle(1)
presenter.onMenuViewChange(1)
verify(mainView).setViewTitle("Test")
}
@Test
fun onMenuFragmentChangeDefaultTest() {
doReturn(emptyMap<Int, String>()).`when`(mainView).mapOfTitles()
doReturn("Default").`when`(mainView).defaultTitle()
presenter.onMenuFragmentChange(2)
verify(mainView).setViewTitle("Default")
}
}

View File

@ -15,7 +15,7 @@ class SplashPresenterTest {
lateinit var splashView: SplashView
@Mock
lateinit var studentRepository: SessionRepository
lateinit var sessionRepository: SessionRepository
@Mock
lateinit var errorHandler: ErrorHandler
@ -25,19 +25,19 @@ class SplashPresenterTest {
@Before
fun initPresenter() {
MockitoAnnotations.initMocks(this)
presenter = SplashPresenter(studentRepository, errorHandler)
presenter = SplashPresenter(sessionRepository, errorHandler)
}
@Test
fun testOpenLoginView() {
doReturn(false).`when`(studentRepository).isSessionSaved
doReturn(false).`when`(sessionRepository).isSessionSaved
presenter.attachView(splashView)
verify(splashView).openLoginView()
}
@Test
fun testMainMainView() {
doReturn(true).`when`(studentRepository).isSessionSaved
doReturn(true).`when`(sessionRepository).isSessionSaved
presenter.attachView(splashView)
verify(splashView).openMainView()
}

View File

@ -0,0 +1,47 @@
package io.github.wulkanowy.utils
import io.github.wulkanowy.data.db.entities.Grade
import io.github.wulkanowy.data.db.entities.GradeSummary
import org.junit.Assert.assertEquals
import org.junit.Test
import org.mockito.Mockito.mock
import org.threeten.bp.LocalDate
class GradeExtensionTest {
@Test
fun calcWeightedAverage() {
val localDate = mock(LocalDate::class.java)
assertEquals(3.47, listOf(
Grade("", "", "", "", 5, 0.33
, "", "", "", "", "",
6, localDate, ""),
Grade("", "", "", "", 5, -0.33
, "", "", "", "", "",
5, localDate, ""),
Grade("", "", "", "", 4, 0.0
, "", "", "", "", "",
1, localDate, ""),
Grade("", "", "", "", 1, 0.5
, "", "", "", "", "",
9, localDate, ""),
Grade("", "", "", "", 0, 0.0
, "", "", "", "", "",
0, localDate, "")
).calcAverage(), 0.005)
}
@Test
fun calcSummaryAverage() {
assertEquals(2.5, listOf(
GradeSummary(0, "", "", "", "",
"5"),
GradeSummary(0, "", "", "", "",
"-5"),
GradeSummary(0, "", "", "", "",
"test"),
GradeSummary(0, "", "", "", "",
"0")
).calcAverage(), 0.005)
}
}

View File

@ -0,0 +1,144 @@
package io.github.wulkanowy.utils
import org.junit.Assert.*
import org.junit.Test
import org.threeten.bp.LocalDate
import java.util.*
class TimeExtensionTest {
@Test
fun toLocalDateTest() {
assertEquals(LocalDate.of(1970, 1, 1), "1970-01-01".toLocalDate("yyyy-MM-dd"))
}
@Test
fun toFormattedStringTest() {
assertEquals("2018-10-01", LocalDate.of(2018, 10, 1).toFormattedString())
assertEquals("2018-10.01", LocalDate.of(2018, 10, 1).toFormattedString("yyyy-MM.dd"))
}
@Test
fun weekFirstDayAlwaysCurrentTest() {
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 2).weekFirstDayAlwaysCurrent)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 5).weekFirstDayAlwaysCurrent)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 6).weekFirstDayAlwaysCurrent)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 7).weekFirstDayAlwaysCurrent)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 8).weekFirstDayAlwaysCurrent)
}
@Test
fun weekFirstDayNextOnWeekEndTest() {
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 2).weekFirstDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 5).weekFirstDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 6).weekFirstDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 7).weekFirstDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 8).weekFirstDayNextOnWeekEnd)
}
@Test
fun weekDayNameTest() {
Locale.setDefault(Locale.forLanguageTag("PL"))
assertEquals("poniedziałek", LocalDate.of(2018, 10, 1).weekDayName)
Locale.setDefault(Locale.forLanguageTag("US"))
assertEquals("Monday", LocalDate.of(2018, 10, 1).weekDayName)
}
@Test
fun nextSchoolDayTest() {
assertEquals(LocalDate.of(2018, 10, 2), LocalDate.of(2018, 10, 1).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 3), LocalDate.of(2018, 10, 2).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 4), LocalDate.of(2018, 10, 3).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 4).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 5).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 6).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 7).nextWorkDay)
assertEquals(LocalDate.of(2018, 10, 9), LocalDate.of(2018, 10, 8).nextWorkDay)
}
@Test
fun previousSchoolDayTest() {
assertEquals(LocalDate.of(2018, 10, 9), LocalDate.of(2018, 10, 10).previousWorkDay)
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 9).previousWorkDay)
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 8).previousWorkDay)
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 7).previousWorkDay)
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 6).previousWorkDay)
assertEquals(LocalDate.of(2018, 10, 4), LocalDate.of(2018, 10, 5).previousWorkDay)
assertEquals(LocalDate.of(2018, 10, 3), LocalDate.of(2018, 10, 4).previousWorkDay)
}
@Test
fun nearSchoolDayPrevOnWeekEndTest() {
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 28).nearSchoolDayPrevOnWeekEnd)
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 29).nearSchoolDayPrevOnWeekEnd)
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 30).nearSchoolDayPrevOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 1).nearSchoolDayPrevOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 2), LocalDate.of(2018, 10, 2).nearSchoolDayPrevOnWeekEnd)
}
@Test
fun nearSchoolDayNextOnWeekEndTest() {
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 28).nearSchoolDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 9, 29).nearSchoolDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 9, 30).nearSchoolDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 1).nearSchoolDayNextOnWeekEnd)
assertEquals(LocalDate.of(2018, 10, 2), LocalDate.of(2018, 10, 2).nearSchoolDayNextOnWeekEnd)
}
@Test
fun isHolidays_schoolEndTest() {
assertFalse(LocalDate.of(2017, 6, 23).isHolidays)
assertFalse(LocalDate.of(2018, 6, 22).isHolidays)
assertFalse(LocalDate.of(2019, 6, 21).isHolidays)
assertFalse(LocalDate.of(2020, 6, 26).isHolidays)
assertFalse(LocalDate.of(2021, 6, 25).isHolidays)
assertFalse(LocalDate.of(2022, 6, 24).isHolidays)
assertFalse(LocalDate.of(2023, 6, 23).isHolidays)
assertFalse(LocalDate.of(2024, 6, 21).isHolidays)
assertFalse(LocalDate.of(2025, 6, 27).isHolidays)
}
@Test
fun isHolidays_holidaysStartTest() {
assertTrue(LocalDate.of(2017, 6, 24).isHolidays)
assertTrue(LocalDate.of(2018, 6, 23).isHolidays)
assertTrue(LocalDate.of(2019, 6, 22).isHolidays)
assertTrue(LocalDate.of(2020, 6, 27).isHolidays)
assertTrue(LocalDate.of(2021, 6, 26).isHolidays)
assertTrue(LocalDate.of(2022, 6, 25).isHolidays)
assertTrue(LocalDate.of(2023, 6, 24).isHolidays)
assertTrue(LocalDate.of(2024, 6, 22).isHolidays)
assertTrue(LocalDate.of(2025, 6, 28).isHolidays)
}
@Test
fun isHolidays_holidaysEndTest() {
assertTrue(LocalDate.of(2017, 9, 1).isHolidays) // friday
assertTrue(LocalDate.of(2017, 9, 2).isHolidays) // saturday
assertTrue(LocalDate.of(2017, 9, 3).isHolidays) // sunday
assertTrue(LocalDate.of(2018, 9, 1).isHolidays) // saturday
assertTrue(LocalDate.of(2018, 9, 2).isHolidays) // sunday
assertTrue(LocalDate.of(2019, 9, 1).isHolidays) // sunday
assertTrue(LocalDate.of(2020, 8, 31).isHolidays) // monday
assertTrue(LocalDate.of(2021, 8, 31).isHolidays) // tuesday
assertTrue(LocalDate.of(2022, 8, 31).isHolidays) // wednesday
assertTrue(LocalDate.of(2023, 9, 1).isHolidays) // friday
assertTrue(LocalDate.of(2023, 9, 2).isHolidays) // saturday
assertTrue(LocalDate.of(2023, 9, 3).isHolidays) // sunday
assertTrue(LocalDate.of(2024, 9, 1).isHolidays) // sunday
assertTrue(LocalDate.of(2025, 8, 31).isHolidays) // sunday
}
@Test
fun isHolidays_schoolStartTest() {
assertFalse(LocalDate.of(2017, 9, 4).isHolidays) // monday
assertFalse(LocalDate.of(2018, 9, 3).isHolidays) // monday
assertFalse(LocalDate.of(2019, 9, 2).isHolidays) // monday
assertFalse(LocalDate.of(2020, 9, 1).isHolidays) // tuesday
assertFalse(LocalDate.of(2021, 9, 1).isHolidays) // wednesday
assertFalse(LocalDate.of(2022, 9, 1).isHolidays) // thursday
assertFalse(LocalDate.of(2023, 9, 4).isHolidays) // monday
assertFalse(LocalDate.of(2024, 9, 2).isHolidays) // monday
assertFalse(LocalDate.of(2025, 9, 1).isHolidays) // monday
}
}

View File

@ -1,150 +0,0 @@
package io.github.wulkanowy.utils.extension
import org.junit.Assert.*
import org.junit.Test
import org.threeten.bp.LocalDate
import java.util.*
class TimeExtensionTest {
@Test
fun toDate() {
assertEquals(LocalDate.of(1970, 1, 1), "1970-01-01".toDate("yyyy-MM-dd"))
}
@Test
fun toFormat() {
assertEquals("2018-10-01", LocalDate.of(2018, 10, 1).toFormat())
assertEquals("2018-10.01", LocalDate.of(2018, 10, 1).toFormat("yyyy-MM.dd"))
}
@Test
fun getWeekFirstDayAlwaysCurrent() {
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 2).getWeekFirstDayAlwaysCurrent())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 5).getWeekFirstDayAlwaysCurrent())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 6).getWeekFirstDayAlwaysCurrent())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 7).getWeekFirstDayAlwaysCurrent())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 8).getWeekFirstDayAlwaysCurrent())
}
@Test
fun getWeekFirstDayNextOnWeekEnd() {
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 2).getWeekFirstDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 5).getWeekFirstDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 6).getWeekFirstDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 7).getWeekFirstDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 8).getWeekFirstDayNextOnWeekEnd())
}
@Test
fun getWeekDayName() {
Locale.setDefault(Locale.forLanguageTag("PL"))
assertEquals("poniedziałek", LocalDate.of(2018, 10, 1).getWeekDayName())
Locale.setDefault(Locale.forLanguageTag("US"))
assertEquals("Monday", LocalDate.of(2018, 10, 1).getWeekDayName())
}
@Test
fun getSchoolYear() {
assertEquals(2017, LocalDate.of(2018, 8, 31).getSchoolYear())
assertEquals(2018, LocalDate.of(2018, 9, 1).getSchoolYear())
}
@Test
fun getNextSchoolDay() {
assertEquals(LocalDate.of(2018, 10, 2), LocalDate.of(2018, 10, 1).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 3), LocalDate.of(2018, 10, 2).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 4), LocalDate.of(2018, 10, 3).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 4).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 5).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 6).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 7).getNextWorkDay())
assertEquals(LocalDate.of(2018, 10, 9), LocalDate.of(2018, 10, 8).getNextWorkDay())
}
@Test
fun getPreviousSchoolDay() {
assertEquals(LocalDate.of(2018, 10, 9), LocalDate.of(2018, 10, 10).getPreviousWorkDay())
assertEquals(LocalDate.of(2018, 10, 8), LocalDate.of(2018, 10, 9).getPreviousWorkDay())
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 8).getPreviousWorkDay())
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 7).getPreviousWorkDay())
assertEquals(LocalDate.of(2018, 10, 5), LocalDate.of(2018, 10, 6).getPreviousWorkDay())
assertEquals(LocalDate.of(2018, 10, 4), LocalDate.of(2018, 10, 5).getPreviousWorkDay())
assertEquals(LocalDate.of(2018, 10, 3), LocalDate.of(2018, 10, 4).getPreviousWorkDay())
}
@Test
fun getNearSchoolDayPrevOnWeekEnd() {
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 28).getNearSchoolDayPrevOnWeekEnd())
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 29).getNearSchoolDayPrevOnWeekEnd())
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 30).getNearSchoolDayPrevOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 1).getNearSchoolDayPrevOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 2), LocalDate.of(2018, 10, 2).getNearSchoolDayPrevOnWeekEnd())
}
@Test
fun getNearSchoolDayNextOnWeekEnd() {
assertEquals(LocalDate.of(2018, 9, 28), LocalDate.of(2018, 9, 28).getNearSchoolDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 9, 29).getNearSchoolDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 9, 30).getNearSchoolDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 1), LocalDate.of(2018, 10, 1).getNearSchoolDayNextOnWeekEnd())
assertEquals(LocalDate.of(2018, 10, 2), LocalDate.of(2018, 10, 2).getNearSchoolDayNextOnWeekEnd())
}
@Test
fun isHolidays_schoolEnd() {
assertFalse(LocalDate.of(2017, 6, 23).isHolidays())
assertFalse(LocalDate.of(2018, 6, 22).isHolidays())
assertFalse(LocalDate.of(2019, 6, 21).isHolidays())
assertFalse(LocalDate.of(2020, 6, 26).isHolidays())
assertFalse(LocalDate.of(2021, 6, 25).isHolidays())
assertFalse(LocalDate.of(2022, 6, 24).isHolidays())
assertFalse(LocalDate.of(2023, 6, 23).isHolidays())
assertFalse(LocalDate.of(2024, 6, 21).isHolidays())
assertFalse(LocalDate.of(2025, 6, 27).isHolidays())
}
@Test
fun isHolidays_holidaysStart() {
assertTrue(LocalDate.of(2017, 6, 24).isHolidays())
assertTrue(LocalDate.of(2018, 6, 23).isHolidays())
assertTrue(LocalDate.of(2019, 6, 22).isHolidays())
assertTrue(LocalDate.of(2020, 6, 27).isHolidays())
assertTrue(LocalDate.of(2021, 6, 26).isHolidays())
assertTrue(LocalDate.of(2022, 6, 25).isHolidays())
assertTrue(LocalDate.of(2023, 6, 24).isHolidays())
assertTrue(LocalDate.of(2024, 6, 22).isHolidays())
assertTrue(LocalDate.of(2025, 6, 28).isHolidays())
}
@Test
fun isHolidays_holidaysEnd() {
assertTrue(LocalDate.of(2017, 9, 1).isHolidays()) // friday
assertTrue(LocalDate.of(2017, 9, 2).isHolidays()) // saturday
assertTrue(LocalDate.of(2017, 9, 3).isHolidays()) // sunday
assertTrue(LocalDate.of(2018, 9, 1).isHolidays()) // saturday
assertTrue(LocalDate.of(2018, 9, 2).isHolidays()) // sunday
assertTrue(LocalDate.of(2019, 9, 1).isHolidays()) // sunday
assertTrue(LocalDate.of(2020, 8, 31).isHolidays()) // monday
assertTrue(LocalDate.of(2021, 8, 31).isHolidays()) // tuesday
assertTrue(LocalDate.of(2022, 8, 31).isHolidays()) // wednesday
assertTrue(LocalDate.of(2023, 9, 1).isHolidays()) // friday
assertTrue(LocalDate.of(2023, 9, 2).isHolidays()) // saturday
assertTrue(LocalDate.of(2023, 9, 3).isHolidays()) // sunday
assertTrue(LocalDate.of(2024, 9, 1).isHolidays()) // sunday
assertTrue(LocalDate.of(2025, 8, 31).isHolidays()) // sunday
}
@Test
fun isHolidays_schoolStart() {
assertFalse(LocalDate.of(2017, 9, 4).isHolidays()) // monday
assertFalse(LocalDate.of(2018, 9, 3).isHolidays()) // monday
assertFalse(LocalDate.of(2019, 9, 2).isHolidays()) // monday
assertFalse(LocalDate.of(2020, 9, 1).isHolidays()) // tuesday
assertFalse(LocalDate.of(2021, 9, 1).isHolidays()) // wednesday
assertFalse(LocalDate.of(2022, 9, 1).isHolidays()) // thursday
assertFalse(LocalDate.of(2023, 9, 4).isHolidays()) // monday
assertFalse(LocalDate.of(2024, 9, 2).isHolidays()) // monday
assertFalse(LocalDate.of(2025, 9, 1).isHolidays()) // monday
}
}