Skip to content

Commit

Permalink
feat: [ANDROAPP-5802] add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mmmateos committed Feb 1, 2024
1 parent ceb7fea commit 0370e49
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import org.dhis2.usescases.datasets.DataSetTest
import org.dhis2.usescases.enrollment.EnrollmentTest
import org.dhis2.usescases.event.EventTest
import org.dhis2.usescases.filters.FilterTest
import org.dhis2.usescases.form.FormTest
import org.dhis2.usescases.jira.JiraTest
import org.dhis2.usescases.login.LoginTest
import org.dhis2.usescases.main.MainTest
Expand All @@ -15,6 +14,7 @@ import org.dhis2.usescases.searchte.SearchTETest
import org.dhis2.usescases.settings.SettingsTest
import org.dhis2.usescases.sync.SyncActivityTest
import org.dhis2.usescases.teidashboard.TeiDashboardTest
import org.dhis2.usescases.teidashboard.dialogs.scheduling.SchedulingDialogUiTest
import org.junit.runner.RunWith
import org.junit.runners.Suite

Expand All @@ -33,6 +33,7 @@ import org.junit.runners.Suite
SearchTETest::class,
SettingsTest::class,
SyncActivityTest::class,
TeiDashboardTest::class
TeiDashboardTest::class,
SchedulingDialogUiTest::class,
)
class UseCaseTestsSuite
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ import org.hisp.dhis.android.core.trackedentity.TrackedEntityInstance
class TEIDataContracts {
interface View : AbstractActivityContracts.View {
fun setEvents(events: List<EventViewModel>, canAddEvents: Boolean)
fun displayGenerateEvent(): Consumer<ProgramStage>
fun displayScheduleEvent()

fun showDialogCloseProgram()
fun areEventsCompleted(): Consumer<Single<Boolean>>
fun enrollmentCompleted(): Consumer<EnrollmentStatus>
fun switchFollowUp(followUp: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -391,28 +391,23 @@ class TEIDataFragment : FragmentGlobalAbstract(), TEIDataContracts.View {
}
}

override fun displayGenerateEvent(): Consumer<ProgramStage> {
return Consumer { programStageModel: ProgramStage ->
programStageFromEvent = programStageModel
if (programStageModel.displayGenerateEventBox() == true || programStageModel.allowGenerateNextVisit() == true) {
SchedulingDialog(
enrollment = dashboardModel.currentEnrollment,
programStages = eventAdapter?.currentList
?.filter { it.type == EventViewModelType.STAGE && it.canAddNewEvent }
?.mapNotNull { it.stage }
?: emptyList(),
onScheduled = {
showToast(getString(R.string.event_created))
binding.isGrouping?.let {
presenter.onGroupingChanged(it)
}
},
).show(childFragmentManager, SCHEDULING_DIALOG)
} else if (java.lang.Boolean.TRUE == programStageModel.remindCompleted()) showDialogCloseProgram()
}
override fun displayScheduleEvent() {
SchedulingDialog(
enrollment = dashboardModel.currentEnrollment,
programStages = eventAdapter?.currentList
?.filter { it.type == EventViewModelType.STAGE && it.canAddNewEvent }
?.mapNotNull { it.stage }
?: emptyList(),
onScheduled = {
showToast(getString(R.string.event_created))
binding.isGrouping?.let {
presenter.onGroupingChanged(it)
}
},
).show(childFragmentManager, SCHEDULING_DIALOG)
}

private fun showDialogCloseProgram() {
override fun showDialogCloseProgram() {
dialog = CustomDialog(
requireContext(),
getString(R.string.event_completed),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,13 @@ class TEIDataPresenter(
dashboardRepository.displayGenerateEvent(eventUid)
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.subscribe(view.displayGenerateEvent(), Timber.Forest::d),
.subscribe({ programStage ->
if (programStage.displayGenerateEventBox() == true || programStage.allowGenerateNextVisit() == true) {
view.displayScheduleEvent()
} else if (programStage.remindCompleted() == true) {
view.showDialogCloseProgram()
}
}, Timber.Forest::d),
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.dhis2.usescases.teiDashboard.dashboardfragments.data

import io.reactivex.Observable
import io.reactivex.Single
import org.dhis2.commons.data.EventViewModel
import org.dhis2.commons.data.EventViewModelType
Expand Down Expand Up @@ -143,6 +144,36 @@ class TeiDataPresenterTest {
assert(stage.applyHideStage(true) == stage)
}

@Test
fun `Should display schedule events dialogs when configured`() {
val programStage = ProgramStage.builder()
.uid("programStage")
.allowGenerateNextVisit(true)
.displayGenerateEventBox(true)
.remindCompleted(false)
.build()
whenever(
dashboardRepository.displayGenerateEvent("eventUid"),
) doReturn Observable.just(programStage)
teiDataPresenter.displayGenerateEvent("eventUid")
verify(view).displayScheduleEvent()
}

@Test
fun `Should display close program dialogs when configured`() {
val programStage = ProgramStage.builder()
.uid("programStage")
.allowGenerateNextVisit(false)
.displayGenerateEventBox(false)
.remindCompleted(true)
.build()
whenever(
dashboardRepository.displayGenerateEvent("eventUid"),
) doReturn Observable.just(programStage)
teiDataPresenter.displayGenerateEvent("eventUid")
verify(view).showDialogCloseProgram()
}

private fun fakeModel(eventCount: Int = 0, type: EventViewModelType = EventViewModelType.STAGE): EventViewModel {
val dataElements = mutableListOf<Pair<String, String>>()
dataElements.add(
Expand Down

0 comments on commit 0370e49

Please sign in to comment.