From b81d00528858cb2a41586602656dbb11e8d02504 Mon Sep 17 00:00:00 2001 From: "h.malik144@gmail.com" Date: Tue, 29 Aug 2023 20:46:10 +0100 Subject: [PATCH] - lint checks completed --- .../h_mal/farmr/viewmodel/InfoViewModel.kt | 1 - .../farmr/viewmodel/InfoViewModelTest.kt | 93 +++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 app/src/test/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModelTest.kt diff --git a/app/src/main/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModel.kt b/app/src/main/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModel.kt index dea7585..025829e 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModel.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModel.kt @@ -35,6 +35,5 @@ class InfoViewModel( stringBuilder.append(" (+ ").append(shiftObject.breakMins).append(" minutes break)") } return stringBuilder.toString() - } } \ No newline at end of file diff --git a/app/src/test/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModelTest.kt b/app/src/test/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModelTest.kt new file mode 100644 index 0000000..3fb73c0 --- /dev/null +++ b/app/src/test/java/com/appttude/h_mal/farmr/viewmodel/InfoViewModelTest.kt @@ -0,0 +1,93 @@ +package com.appttude.h_mal.farmr.viewmodel + +import android.os.Bundle +import com.appttude.h_mal.farmr.data.legacydb.ShiftObject +import com.appttude.h_mal.farmr.utils.ID +import io.mockk.every +import io.mockk.mockk +import org.junit.Assert.assertEquals +import org.junit.Test +import org.mockito.ArgumentMatchers.anyLong +import kotlin.test.assertIs + +class InfoViewModelTest : ShiftViewModelTest() { + + @Test + fun retrieveData_validBundleAndId_successfulRetrieval() { + // Arrange + val id = anyLong() + val shift = mockk() + val bundle = mockk() + + // Act + every { repository.readSingleShiftFromDatabase(id) }.returns(shift) + every { bundle.getLong(ID) }.returns(id) + viewModel.retrieveData(bundle) + + // Assert + assertIs(retrieveCurrentData()) + assertEquals( + retrieveCurrentData(), + shift + ) + } + + @Test + fun retrieveData_noValidBundleAndId_unsuccessfulRetrieval() { + // Arrange + val id = anyLong() + val shift = mockk() + val bundle = mockk() + + // Act + every { repository.readSingleShiftFromDatabase(id) }.returns(shift) + every { bundle.getLong(ID) }.returns(id) + viewModel.retrieveData(null) + + // Assert + assertEquals( + retrieveCurrentError(), + "Failed to retrieve shift" + ) + } + + @Test + fun retrieveData_validBundleNoShift_successfulRetrieval() { + // Arrange + val id = anyLong() + val bundle = mockk() + + // Act + every { repository.readSingleShiftFromDatabase(id) }.returns(null) + every { bundle.getLong(ID) }.returns(id) + viewModel.retrieveData(bundle) + + // Assert + assertEquals( + retrieveCurrentError(), + "Failed to retrieve shift" + ) + } + + @Test + fun buildDurationSummary_validHourlyShift_successfulRetrieval() { + // Arrange + val shift = getShifts()[0] + val shiftWithBreak = getShifts()[3] + + // Act + val summary = viewModel.buildDurationSummary(shift) + val summaryWithBreak = viewModel.buildDurationSummary(shiftWithBreak) + + // Assert + assertEquals( + "1 Hours 0 Minutes ", + summary + ) + assertEquals( + "1 Hours 0 Minutes (+ 30 minutes break)", + summaryWithBreak + ) + } + +} \ No newline at end of file