SDK update (#2168)

This commit is contained in:
Mikołaj Pich 2023-05-07 23:21:59 +02:00 committed by GitHub
parent b195fda026
commit f8431d7ad6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 260 additions and 321 deletions

View file

@ -48,7 +48,7 @@ fun getSemesterPojo(diaryId: Int, semesterId: Int, start: LocalDate, end: LocalD
end = end,
)
fun getStudentEntity(mode: Sdk.Mode = Sdk.Mode.API) = Student(
fun getStudentEntity(mode: Sdk.Mode = Sdk.Mode.HEBE) = Student(
scrapperBaseUrl = "http://fakelog.cf",
email = "jan@fakelog.cf",
certificateKey = "",

View file

@ -3,7 +3,7 @@ package io.github.wulkanowy.data.mappers
import io.github.wulkanowy.data.db.entities.Semester
import io.github.wulkanowy.data.db.entities.Timetable
import io.github.wulkanowy.sdk.pojo.Attendance
import io.github.wulkanowy.sdk.scrapper.attendance.SentExcuse
import io.github.wulkanowy.sdk.scrapper.attendance.SentExcuseStatus
import org.junit.Test
import java.time.Instant
import java.time.LocalDate
@ -98,7 +98,7 @@ class AttendanceMapperTest {
timeId = 1,
categoryId = 1,
deleted = false,
excuseStatus = SentExcuse.Status.WAITING,
excuseStatus = SentExcuseStatus.WAITING,
excusable = false,
absence = false,
excused = false,

View file

@ -63,7 +63,7 @@ class AttendanceRepositoryTest {
@Test
fun `force refresh without difference`() {
// prepare
coEvery { sdk.getAttendance(startDate, endDate, 1) } returns remoteList
coEvery { sdk.getAttendance(startDate, endDate) } returns remoteList
coEvery { attendanceDb.loadAll(1, 1, startDate, endDate) } returnsMany listOf(
flowOf(remoteList.mapToEntities(semester, emptyList())),
flowOf(remoteList.mapToEntities(semester, emptyList()))
@ -77,7 +77,7 @@ class AttendanceRepositoryTest {
// verify
assertEquals(null, res.errorOrNull)
assertEquals(2, res.dataOrNull?.size)
coVerify { sdk.getAttendance(startDate, endDate, 1) }
coVerify { sdk.getAttendance(startDate, endDate) }
coVerify { attendanceDb.loadAll(1, 1, startDate, endDate) }
coVerify { attendanceDb.insertAll(match { it.isEmpty() }) }
coVerify { attendanceDb.deleteAll(match { it.isEmpty() }) }
@ -86,7 +86,7 @@ class AttendanceRepositoryTest {
@Test
fun `force refresh with more items in remote`() {
// prepare
coEvery { sdk.getAttendance(startDate, endDate, 1) } returns remoteList
coEvery { sdk.getAttendance(startDate, endDate) } returns remoteList
coEvery { attendanceDb.loadAll(1, 1, startDate, endDate) } returnsMany listOf(
flowOf(remoteList.dropLast(1).mapToEntities(semester, emptyList())),
flowOf(remoteList.dropLast(1).mapToEntities(semester, emptyList())), // after fetch end before save result
@ -101,7 +101,7 @@ class AttendanceRepositoryTest {
// verify
assertEquals(null, res.errorOrNull)
assertEquals(2, res.dataOrNull?.size)
coVerify { sdk.getAttendance(startDate, endDate, 1) }
coVerify { sdk.getAttendance(startDate, endDate) }
coVerify { attendanceDb.loadAll(1, 1, startDate, endDate) }
coVerify {
attendanceDb.insertAll(match {
@ -114,7 +114,7 @@ class AttendanceRepositoryTest {
@Test
fun `force refresh with more items in local`() {
// prepare
coEvery { sdk.getAttendance(startDate, endDate, 1) } returns remoteList.dropLast(1)
coEvery { sdk.getAttendance(startDate, endDate) } returns remoteList.dropLast(1)
coEvery { attendanceDb.loadAll(1, 1, startDate, endDate) } returnsMany listOf(
flowOf(remoteList.mapToEntities(semester, emptyList())),
flowOf(remoteList.mapToEntities(semester, emptyList())), // after fetch end before save result
@ -129,7 +129,7 @@ class AttendanceRepositoryTest {
// verify
assertEquals(null, res.errorOrNull)
assertEquals(1, res.dataOrNull?.size)
coVerify { sdk.getAttendance(startDate, endDate, 1) }
coVerify { sdk.getAttendance(startDate, endDate) }
coVerify { attendanceDb.loadAll(1, 1, startDate, endDate) }
coVerify { attendanceDb.insertAll(match { it.isEmpty() }) }
coVerify {

View file

@ -59,7 +59,7 @@ class ExamRemoteTest {
@Test
fun `force refresh without difference`() {
// prepare
coEvery { sdk.getExams(startDate, realEndDate, 1) } returns remoteList
coEvery { sdk.getExams(startDate, realEndDate) } returns remoteList
coEvery { examDb.loadAll(1, 1, startDate, realEndDate) } returnsMany listOf(
flowOf(remoteList.mapToEntities(semester)),
flowOf(remoteList.mapToEntities(semester))
@ -73,7 +73,7 @@ class ExamRemoteTest {
// verify
assertEquals(null, res.errorOrNull)
assertEquals(2, res.dataOrNull?.size)
coVerify { sdk.getExams(startDate, realEndDate, 1) }
coVerify { sdk.getExams(startDate, realEndDate) }
coVerify { examDb.loadAll(1, 1, startDate, realEndDate) }
coVerify { examDb.insertAll(match { it.isEmpty() }) }
coVerify { examDb.deleteAll(match { it.isEmpty() }) }
@ -82,7 +82,7 @@ class ExamRemoteTest {
@Test
fun `force refresh with more items in remote`() {
// prepare
coEvery { sdk.getExams(startDate, realEndDate, 1) } returns remoteList
coEvery { sdk.getExams(startDate, realEndDate) } returns remoteList
coEvery { examDb.loadAll(1, 1, startDate, realEndDate) } returnsMany listOf(
flowOf(remoteList.dropLast(1).mapToEntities(semester)),
flowOf(remoteList.dropLast(1).mapToEntities(semester)), // after fetch end before save result
@ -97,7 +97,7 @@ class ExamRemoteTest {
// verify
assertEquals(null, res.errorOrNull)
assertEquals(2, res.dataOrNull?.size)
coVerify { sdk.getExams(startDate, realEndDate, 1) }
coVerify { sdk.getExams(startDate, realEndDate) }
coVerify { examDb.loadAll(1, 1, startDate, realEndDate) }
coVerify {
examDb.insertAll(match {
@ -110,7 +110,7 @@ class ExamRemoteTest {
@Test
fun `force refresh with more items in local`() {
// prepare
coEvery { sdk.getExams(startDate, realEndDate, 1) } returns remoteList.dropLast(1)
coEvery { sdk.getExams(startDate, realEndDate) } returns remoteList.dropLast(1)
coEvery { examDb.loadAll(1, 1, startDate, realEndDate) } returnsMany listOf(
flowOf(remoteList.mapToEntities(semester)),
flowOf(remoteList.mapToEntities(semester)), // after fetch end before save result
@ -125,7 +125,7 @@ class ExamRemoteTest {
// verify
assertEquals(null, res.errorOrNull)
assertEquals(1, res.dataOrNull?.size)
coVerify { sdk.getExams(startDate, realEndDate, 1) }
coVerify { sdk.getExams(startDate, realEndDate) }
coVerify { examDb.loadAll(1, 1, startDate, realEndDate) }
coVerify { examDb.insertAll(match { it.isEmpty() }) }
coVerify {
@ -137,7 +137,6 @@ class ExamRemoteTest {
private fun getExam(date: LocalDate) = SdkExam(
subject = "",
group = "",
type = "",
description = "",
teacher = "",

View file

@ -9,13 +9,21 @@ import io.github.wulkanowy.data.toFirstResult
import io.github.wulkanowy.getSemesterEntity
import io.github.wulkanowy.getStudentEntity
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.sdk.pojo.Grades
import io.github.wulkanowy.utils.AutoRefreshHelper
import io.mockk.*
import io.mockk.MockKAnnotations
import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.impl.annotations.SpyK
import io.mockk.just
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.runBlocking
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import java.time.LocalDate
@ -72,7 +80,7 @@ class GradeRepositoryTest {
createGradeApi(5, 4.0, of(2019, 2, 27), "Ocena z dnia logowania"),
createGradeApi(5, 4.0, of(2019, 2, 28), "Ocena jeszcze nowsza")
)
coEvery { sdk.getGrades(1) } returns (remoteList to emptyList())
coEvery { sdk.getGrades(1) } returns createGrades(remoteList)
coEvery { gradeDb.loadAll(1, 1) } returnsMany listOf(
flowOf(listOf()), // empty because it is new user
@ -122,7 +130,7 @@ class GradeRepositoryTest {
),
createGradeApi(2, 5.0, of(2019, 2, 28), "Ta jest już w ogóle nowa")
)
coEvery { sdk.getGrades(1) } returns (remoteList to emptyList())
coEvery { sdk.getGrades(1) } returns createGrades(remoteList)
val localList = listOf(
createGradeApi(5, 3.0, of(2019, 2, 25), "Jedna ocena"),
@ -169,7 +177,7 @@ class GradeRepositoryTest {
createGradeApi(5, 3.0, of(2019, 2, 25), "Taka sama ocena"),
createGradeApi(3, 5.0, of(2019, 2, 26), "Jakaś inna ocena")
)
coEvery { sdk.getGrades(1) } returns (remoteList to emptyList())
coEvery { sdk.getGrades(1) } returns createGrades(remoteList)
val localList = listOf(
createGradeApi(5, 3.0, of(2019, 2, 25), "Taka sama ocena"),
@ -200,7 +208,7 @@ class GradeRepositoryTest {
createGradeApi(5, 3.0, of(2019, 2, 25), "Taka sama ocena"), // will be added...
createGradeApi(3, 5.0, of(2019, 2, 26), "Jakaś inna ocena")
)
coEvery { sdk.getGrades(1) } returns (remoteList to emptyList())
coEvery { sdk.getGrades(1) } returns createGrades(remoteList)
val localList = listOf(
createGradeApi(5, 3.0, of(2019, 2, 25), "Taka sama ocena"),
@ -230,7 +238,7 @@ class GradeRepositoryTest {
createGradeApi(5, 3.0, of(2019, 2, 25), "Taka sama ocena"),
createGradeApi(3, 5.0, of(2019, 2, 26), "Jakaś inna ocena")
)
coEvery { sdk.getGrades(1) } returns (remoteList to emptyList())
coEvery { sdk.getGrades(1) } returns createGrades(remoteList)
coEvery { gradeDb.loadAll(1, 1) } returnsMany listOf(
flowOf(listOf()),
@ -250,7 +258,7 @@ class GradeRepositoryTest {
fun `force refresh when remote is empty`() {
// prepare
val remoteList = emptyList<SdkGrade>()
coEvery { sdk.getGrades(semester.semesterId) } returns (remoteList to emptyList())
coEvery { sdk.getGrades(semester.semesterId) } returns createGrades(remoteList)
val localList = listOf(
createGradeApi(5, 3.0, of(2019, 2, 25), "Taka sama ocena"),
@ -284,4 +292,13 @@ class GradeRepositoryTest {
weight = weight.toString(),
weightValue = weight
)
private fun createGrades(grades: List<SdkGrade>): Grades = Grades(
details = grades,
summary = listOf(),
isAverage = false,
isPoints = false,
isForAdults = false,
type = 0,
)
}

View file

@ -224,7 +224,7 @@ class MessageRepositoryTest {
recipients = listOf(),
subject = "",
content = "Test",
dateZoned = Instant.EPOCH.atZone(ZoneOffset.UTC),
date = Instant.EPOCH.atZone(ZoneOffset.UTC),
folderId = 1,
unread = true,
readBy = 1,

View file

@ -10,16 +10,21 @@ import io.github.wulkanowy.getStudentEntity
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.sdk.pojo.Device
import io.github.wulkanowy.utils.AutoRefreshHelper
import io.mockk.*
import io.mockk.MockKAnnotations
import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.impl.annotations.SpyK
import io.mockk.just
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.runBlocking
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import java.time.LocalDateTime.of
import java.time.ZoneId
import java.time.ZoneOffset
import java.time.ZonedDateTime.of
class MobileDeviceRepositoryTest {
@ -134,9 +139,7 @@ class MobileDeviceRepositoryTest {
id = 0,
name = "",
deviceId = "",
createDate = of(2019, 5, day, 0, 0, 0),
modificationDate = of(2019, 5, day, 0, 0, 0),
createDateZoned = of(2019, 5, day, 0, 0, 0).atZone(ZoneId.systemDefault()),
modificationDateZoned = of(2019, 5, day, 0, 0, 0).atZone(ZoneId.systemDefault())
createDate = of(2019, 5, day, 0, 0, 0, 0, ZoneOffset.UTC),
modificationDate = of(2019, 5, day, 0, 0, 0, 0, ZoneOffset.UTC),
)
}

View file

@ -75,7 +75,7 @@ class SemesterRepositoryTest {
coEvery { semesterDb.deleteAll(any()) } just Runs
coEvery { semesterDb.insertSemesters(any()) } returns listOf()
val items = runBlocking { semesterRepository.getSemesters(student.copy(loginMode = Sdk.Mode.API.name)) }
val items = runBlocking { semesterRepository.getSemesters(student.copy(loginMode = Sdk.Mode.HEBE.name)) }
assertEquals(2, items.size)
assertEquals(0, items[0].diaryId)
}
@ -215,6 +215,7 @@ class SemesterRepositoryTest {
@Test(expected = RuntimeException::class)
fun getCurrentSemester_emptyList() {
coEvery { semesterDb.loadAll(student.studentId, student.classId) } returns emptyList()
coEvery { sdk.getSemesters() } returns emptyList()
runBlocking { semesterRepository.getCurrentSemester(student) }
}

View file

@ -1,81 +0,0 @@
package io.github.wulkanowy.data.repositories
import io.github.wulkanowy.TestDispatchersProvider
import io.github.wulkanowy.data.db.dao.SemesterDao
import io.github.wulkanowy.data.db.dao.StudentDao
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.sdk.pojo.Student
import io.github.wulkanowy.utils.AppInfo
import io.mockk.MockKAnnotations
import io.mockk.coEvery
import io.mockk.impl.annotations.MockK
import io.mockk.mockk
import kotlinx.coroutines.runBlocking
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
class StudentTest {
@MockK
private lateinit var mockSdk: Sdk
@MockK
private lateinit var studentDb: StudentDao
@MockK
private lateinit var semesterDb: SemesterDao
private lateinit var studentRepository: StudentRepository
@Before
fun initApi() {
MockKAnnotations.init(this)
studentRepository = StudentRepository(
context = mockk(),
dispatchers = TestDispatchersProvider(),
studentDb = studentDb,
semesterDb = semesterDb,
sdk = mockSdk,
appInfo = AppInfo(),
appDatabase = mockk()
)
}
@Test
fun testRemoteAll() {
coEvery { mockSdk.getStudentsFromScrapper(any(), any(), any(), any()) } returns listOf(
getStudent("test")
)
val students = runBlocking { studentRepository.getStudentsScrapper("", "", "http://fakelog.cf", "") }
assertEquals(1, students.size)
assertEquals("test Kowalski", students.first().student.studentName)
}
private fun getStudent(name: String): Student {
return Student(
email = "",
symbol = "",
studentId = 0,
userLoginId = 0,
userLogin = "",
userName = "",
studentName = name,
studentSurname = "Kowalski",
schoolSymbol = "",
schoolShortName = "",
schoolName = "",
className = "",
classId = 0,
certificateKey = "",
privateKey = "",
loginMode = Sdk.Mode.SCRAPPER,
mobileBaseUrl = "",
loginType = Sdk.ScrapperLoginType.STANDARD,
scrapperBaseUrl = "",
isParent = false,
semesters = emptyList()
)
}
}

View file

@ -10,12 +10,17 @@ import io.github.wulkanowy.data.toFirstResult
import io.github.wulkanowy.getSemesterEntity
import io.github.wulkanowy.getStudentEntity
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.sdk.pojo.TimetableFull
import io.github.wulkanowy.services.alarm.TimetableNotificationSchedulerHelper
import io.github.wulkanowy.utils.AutoRefreshHelper
import io.mockk.*
import io.mockk.MockKAnnotations
import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.impl.annotations.SpyK
import io.mockk.just
import io.mockk.mockk
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.runBlocking
import org.junit.Assert.assertEquals
@ -25,7 +30,7 @@ import java.time.LocalDate
import java.time.LocalDateTime
import java.time.LocalDateTime.of
import java.time.ZoneId
import io.github.wulkanowy.sdk.pojo.Timetable as SdkTimetable
import io.github.wulkanowy.sdk.pojo.Lesson as SdkLesson
class TimetableRepositoryTest {
@ -62,18 +67,43 @@ class TimetableRepositoryTest {
MockKAnnotations.init(this)
every { refreshHelper.shouldBeRefreshed(any()) } returns false
timetableRepository = TimetableRepository(timetableDb, timetableAdditionalDao, timetableHeaderDao, sdk, timetableNotificationSchedulerHelper, refreshHelper)
timetableRepository = TimetableRepository(
timetableDb,
timetableAdditionalDao,
timetableHeaderDao,
sdk,
timetableNotificationSchedulerHelper,
refreshHelper
)
}
@Test
fun `force refresh without difference`() {
val remoteList = listOf(
createTimetableRemote(of(2021, 1, 4, 8, 0), 1, "123", "Język polski", "Jan Kowalski", false),
createTimetableRemote(of(2021, 1, 4, 8, 50), 2, "124", "Język niemiecki", "Joanna Czarniecka", true)
createTimetableRemote(
start = of(2021, 1, 4, 8, 0),
number = 1,
room = "123",
subject = "Język polski",
teacher = "Jan Kowalski",
changes = false
),
createTimetableRemote(
start = of(2021, 1, 4, 8, 50),
number = 2,
room = "124",
subject = "Język niemiecki",
teacher = "Joanna Czarniecka",
changes = true
)
)
// prepare
coEvery { sdk.getTimetableFull(startDate, endDate) } returns TimetableFull(emptyList(), remoteList, emptyList())
coEvery { sdk.getTimetable(startDate, endDate) } returns mockk {
every { headers } returns emptyList()
every { lessons } returns remoteList
every { additional } returns emptyList()
}
coEvery { timetableDb.loadAll(1, 1, startDate, endDate) } returnsMany listOf(
flowOf(remoteList.mapToEntities(semester)),
flowOf(remoteList.mapToEntities(semester))
@ -81,7 +111,14 @@ class TimetableRepositoryTest {
coEvery { timetableDb.insertAll(any()) } returns listOf(1, 2, 3)
coEvery { timetableDb.deleteAll(any()) } just Runs
coEvery { timetableAdditionalDao.loadAll(1, 1, startDate, endDate) } returns flowOf(listOf())
coEvery {
timetableAdditionalDao.loadAll(
diaryId = 1,
studentId = 1,
from = startDate,
end = endDate
)
} returns flowOf(listOf())
coEvery { timetableAdditionalDao.deleteAll(emptyList()) } just Runs
coEvery { timetableAdditionalDao.insertAll(emptyList()) } returns listOf(1, 2, 3)
@ -90,23 +127,36 @@ class TimetableRepositoryTest {
coEvery { timetableHeaderDao.deleteAll(emptyList()) } just Runs
// execute
val res = runBlocking { timetableRepository.getTimetable(student, semester, startDate, endDate, true).toFirstResult() }
val res = runBlocking {
timetableRepository.getTimetable(
student = student,
semester = semester,
start = startDate,
end = endDate,
forceRefresh = true
).toFirstResult()
}
// verify
assertEquals(null, res.errorOrNull)
assertEquals(2, res.dataOrNull!!.lessons.size)
coVerify { sdk.getTimetableFull(startDate, endDate) }
coVerify { sdk.getTimetable(startDate, endDate) }
coVerify { timetableDb.loadAll(1, 1, startDate, endDate) }
coVerify { timetableDb.insertAll(match { it.isEmpty() }) }
coVerify { timetableDb.deleteAll(match { it.isEmpty() }) }
}
private fun createTimetableRemote(start: LocalDateTime, number: Int = 1, room: String = "", subject: String = "", teacher: String = "", changes: Boolean = false) = SdkTimetable(
private fun createTimetableRemote(
start: LocalDateTime,
number: Int = 1,
room: String = "",
subject: String = "",
teacher: String = "",
changes: Boolean = false
) = SdkLesson(
number = number,
start = start,
end = start.plusMinutes(45),
startZoned = start.atZone(ZoneId.systemDefault()),
endZoned = start.plusMinutes(45).atZone(ZoneId.systemDefault()),
start = start.atZone(ZoneId.systemDefault()),
end = start.plusMinutes(45).atZone(ZoneId.systemDefault()),
date = start.toLocalDate(),
subject = subject,
group = "",

View file

@ -207,7 +207,7 @@ class GetMailboxByStudentUseCaseTest {
className = "",
isCurrent = false,
isParent = false,
loginMode = Sdk.Mode.API.name,
loginMode = Sdk.Mode.HEBE.name,
loginType = Sdk.ScrapperLoginType.STANDARD.name,
mobileBaseUrl = "",
password = "",

View file

@ -456,7 +456,7 @@ class GradeAverageProviderTest {
@Test
fun `force calc current semester average with custom modifiers in api mode`() {
val student = student.copy(loginMode = Sdk.Mode.API.name)
val student = student.copy(loginMode = Sdk.Mode.HEBE.name)
every { preferencesRepository.gradeAverageForceCalcFlow } returns flowOf(true)
every { preferencesRepository.isOptionalArithmeticAverageFlow } returns flowOf(false)

View file

@ -3,11 +3,18 @@ package io.github.wulkanowy.ui.modules.login.form
import io.github.wulkanowy.MainCoroutineRule
import io.github.wulkanowy.data.pojos.RegisterUser
import io.github.wulkanowy.data.repositories.StudentRepository
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.sdk.scrapper.Scrapper
import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
import io.github.wulkanowy.utils.AnalyticsHelper
import io.mockk.*
import io.github.wulkanowy.utils.AppInfo
import io.mockk.MockKAnnotations
import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.just
import io.mockk.verify
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@ -30,13 +37,17 @@ class LoginFormPresenterTest {
@MockK(relaxed = true)
lateinit var analytics: AnalyticsHelper
@MockK
lateinit var appInfo: AppInfo
private lateinit var presenter: LoginFormPresenter
private val registerUser = RegisterUser(
email = "",
password = "",
login = "",
baseUrl = "",
scrapperBaseUrl = "",
loginMode = Sdk.Mode.HEBE,
loginType = Scrapper.LoginType.AUTO,
symbols = listOf(),
)
@ -54,8 +65,14 @@ class LoginFormPresenterTest {
every { loginFormView.setErrorPassInvalid(any()) } just Runs
every { loginFormView.setErrorPassRequired(any()) } just Runs
every { loginFormView.setErrorUsernameRequired() } just Runs
every { appInfo.isDebug } returns false
presenter = LoginFormPresenter(repository, errorHandler, analytics)
presenter = LoginFormPresenter(
studentRepository = repository,
loginErrorHandler = errorHandler,
appInfo = appInfo,
analytics = analytics,
)
presenter.onAttachView(loginFormView)
}

View file

@ -6,14 +6,22 @@ import io.github.wulkanowy.data.pojos.RegisterSymbol
import io.github.wulkanowy.data.pojos.RegisterUnit
import io.github.wulkanowy.data.pojos.RegisterUser
import io.github.wulkanowy.data.repositories.StudentRepository
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.sdk.scrapper.Scrapper
import io.github.wulkanowy.services.sync.SyncManager
import io.github.wulkanowy.ui.modules.login.LoginData
import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
import io.github.wulkanowy.utils.AnalyticsHelper
import io.github.wulkanowy.utils.AppInfo
import io.mockk.*
import io.mockk.MockKAnnotations
import io.mockk.Runs
import io.mockk.clearMocks
import io.mockk.coEvery
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.just
import io.mockk.slot
import io.mockk.verify
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@ -76,6 +84,9 @@ class LoginStudentSelectPresenterTest {
symbol = "",
error = null,
userName = "",
keyId = null,
privatePem = null,
hebeBaseUrl = null,
schools = listOf(school),
)
@ -83,7 +94,8 @@ class LoginStudentSelectPresenterTest {
email = "",
password = "",
login = "",
baseUrl = "",
scrapperBaseUrl = "",
loginMode = Sdk.Mode.SCRAPPER,
loginType = Scrapper.LoginType.AUTO,
symbols = listOf(symbol),
)