diff --git a/authentication-logic/src/main/java/eu/europa/ec/authenticationlogic/controller/authentication/DeviceAuthenticationController.kt b/authentication-logic/src/main/java/eu/europa/ec/authenticationlogic/controller/authentication/DeviceAuthenticationController.kt index 59aa727e..05fe1e76 100644 --- a/authentication-logic/src/main/java/eu/europa/ec/authenticationlogic/controller/authentication/DeviceAuthenticationController.kt +++ b/authentication-logic/src/main/java/eu/europa/ec/authenticationlogic/controller/authentication/DeviceAuthenticationController.kt @@ -39,6 +39,7 @@ class DeviceAuthenticationControllerImpl( private val resourceProvider: ResourceProvider, private val biometricAuthenticationController: BiometricAuthenticationController ) : DeviceAuthenticationController { + override fun deviceSupportsBiometrics(listener: (BiometricsAvailability) -> Unit) { biometricAuthenticationController.deviceSupportsBiometrics(listener) } diff --git a/common-feature/src/main/java/eu/europa/ec/commonfeature/interactor/DeviceAuthenticationInteractor.kt b/common-feature/src/main/java/eu/europa/ec/commonfeature/interactor/DeviceAuthenticationInteractor.kt index 92b1ee93..d6bb08e1 100644 --- a/common-feature/src/main/java/eu/europa/ec/commonfeature/interactor/DeviceAuthenticationInteractor.kt +++ b/common-feature/src/main/java/eu/europa/ec/commonfeature/interactor/DeviceAuthenticationInteractor.kt @@ -31,8 +31,10 @@ interface DeviceAuthenticationInteractor { ) } -class DeviceAuthenticationInteractorImpl(private val deviceAuthenticationController: DeviceAuthenticationController) : - DeviceAuthenticationInteractor { +class DeviceAuthenticationInteractorImpl( + private val deviceAuthenticationController: DeviceAuthenticationController, +) : DeviceAuthenticationInteractor { + override fun getBiometricsAvailability(listener: (BiometricsAvailability) -> Unit) { deviceAuthenticationController.deviceSupportsBiometrics(listener) } diff --git a/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestBiometricInteractor.kt b/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestBiometricInteractor.kt index 009a65b1..536ed49e 100644 --- a/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestBiometricInteractor.kt +++ b/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestBiometricInteractor.kt @@ -26,6 +26,7 @@ import eu.europa.ec.testlogic.extension.runFlowTest import eu.europa.ec.testlogic.extension.runTest import eu.europa.ec.testlogic.extension.toFlow import eu.europa.ec.testlogic.rule.CoroutineTestRule +import junit.framework.TestCase.assertEquals import org.junit.After import org.junit.Before import org.junit.Rule @@ -38,7 +39,6 @@ import org.mockito.kotlin.verify import org.mockito.kotlin.whenever import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config -import kotlin.test.assertEquals @RunWith(RobolectricTestRunner::class) @Config(application = TestApplication::class) @@ -76,6 +76,8 @@ class TestBiometricInteractor { closeable.close() } + //region isPinValid + // Case: isPinValid behaviour // When isCurrentPinValid returns QuickPinInteractorPinValidPartialState.Success, // the expected result of isPinValid is Success @@ -94,17 +96,22 @@ class TestBiometricInteractor { assertEquals(expectedResult, awaitItem()) } } + //endregion + + //region launchBiometricSystemScreen // Case: launchBiometricSystemScreen behaviour @Test - fun `When launchBiometricSystemScreen is called, Then verify function is executed on the controller`() = - coroutineRule.runTest { - // When - interactor.launchBiometricSystemScreen() + fun `When launchBiometricSystemScreen is called, Then verify function is executed on the controller`() { + // When + interactor.launchBiometricSystemScreen() - // Then - verify(biometricAuthenticationController).launchBiometricSystemScreen() - } + // Then + verify(biometricAuthenticationController).launchBiometricSystemScreen() + } + //endregion + + ///region getBiometricUserSelection // Case: getBiometricUserSelection behaviour // When getUseBiometricsAuth returns true, the expected result of getBiometricUserSelection @@ -121,6 +128,9 @@ class TestBiometricInteractor { assertEquals(true, result) verify(biometryStorageController).getUseBiometricsAuth() } + //endregion + + //region storeBiometricsUsageDecision // Case: storeBiometricsUsageDecision behaviour @Test @@ -134,6 +144,9 @@ class TestBiometricInteractor { // Then verify(biometryStorageController).setUseBiometricsAuth(shouldUseBiometrics) } + //endregion + + //region getBiometricsAvailability // Case: getBiometricsAvailability behaviour @Test @@ -147,6 +160,9 @@ class TestBiometricInteractor { // Then verify(biometricAuthenticationController).deviceSupportsBiometrics(mockListener) } + //endregion + + //region authenticateWithBiometrics // Case: authenticateWithBiometrics behaviour // Defining a mock BiometricsAuthenticate function callback to verify that authenticate function @@ -166,8 +182,9 @@ class TestBiometricInteractor { // Then verify(biometricAuthenticationController).authenticate(context, mockListener) } + //endregion //region Mocked objects private val mockedPin = "1234" //endregion -} +} \ No newline at end of file diff --git a/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestDeviceAuthenticationInteractor.kt b/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestDeviceAuthenticationInteractor.kt index 07f09d3c..ae41b70f 100644 --- a/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestDeviceAuthenticationInteractor.kt +++ b/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestDeviceAuthenticationInteractor.kt @@ -38,7 +38,7 @@ import org.robolectric.annotation.Config class TestDeviceAuthenticationInteractor { @Mock - lateinit var mockDeviceAuthenticationController: DeviceAuthenticationController + lateinit var deviceAuthenticationController: DeviceAuthenticationController @Mock private lateinit var resultHandler: DeviceAuthenticationResult @@ -53,7 +53,7 @@ class TestDeviceAuthenticationInteractor { fun before() { closeable = MockitoAnnotations.openMocks(this) interactor = DeviceAuthenticationInteractorImpl( - deviceAuthenticationController = mockDeviceAuthenticationController + deviceAuthenticationController = deviceAuthenticationController ) biometricCrypto = BiometricCrypto(cryptoObject = null) @@ -76,7 +76,7 @@ class TestDeviceAuthenticationInteractor { ) // Then - verify(mockDeviceAuthenticationController).deviceSupportsBiometrics(mockListener) + verify(deviceAuthenticationController).deviceSupportsBiometrics(mockListener) } // Case: authenticateWithBiometrics behaviour @@ -93,7 +93,7 @@ class TestDeviceAuthenticationInteractor { ) // Then - verify(mockDeviceAuthenticationController).authenticate( + verify(deviceAuthenticationController).authenticate( context = context, biometryCrypto = biometricCrypto, result = resultHandler diff --git a/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestQrScanInteractor.kt b/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestQrScanInteractor.kt index 0d182dfe..0884344d 100644 --- a/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestQrScanInteractor.kt +++ b/common-feature/src/test/java/eu/europa/ec/commonfeature/interactor/TestQrScanInteractor.kt @@ -20,7 +20,6 @@ import eu.europa.ec.businesslogic.validator.Form import eu.europa.ec.businesslogic.validator.FormValidationResult import eu.europa.ec.businesslogic.validator.FormValidator import eu.europa.ec.businesslogic.validator.FormsValidationResult -import eu.europa.ec.testlogic.base.TestApplication import eu.europa.ec.testlogic.extension.runTest import eu.europa.ec.testlogic.rule.CoroutineTestRule import junit.framework.TestCase.assertEquals @@ -28,17 +27,12 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test -import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.mock import org.mockito.MockitoAnnotations import org.mockito.kotlin.verify import org.mockito.kotlin.whenever -import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config -@RunWith(RobolectricTestRunner::class) -@Config(application = TestApplication::class) class TestQrScanInteractor { @get:Rule