diff --git a/fingerprint/connect/build.gradle.kts b/fingerprint/connect/build.gradle.kts index ada579c339..40438f40a0 100644 --- a/fingerprint/connect/build.gradle.kts +++ b/fingerprint/connect/build.gradle.kts @@ -20,4 +20,6 @@ dependencies { implementation(project(":fingerprint:infra:scanner")) testImplementation(project(":fingerprint:infra:scannermock")) + // Uncomment the line below to use the mock scanner implementation + // implementation(project(":fingerprint:infra:scannermock")) } diff --git a/fingerprint/connect/src/main/java/com/simprints/fingerprint/connect/ScannerConnectModule.kt b/fingerprint/connect/src/main/java/com/simprints/fingerprint/connect/ScannerConnectModule.kt new file mode 100644 index 0000000000..4be27b3627 --- /dev/null +++ b/fingerprint/connect/src/main/java/com/simprints/fingerprint/connect/ScannerConnectModule.kt @@ -0,0 +1,42 @@ +package com.simprints.fingerprint.connect + +import android.bluetooth.BluetoothAdapter +import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothAdapter +import com.simprints.fingerprint.infra.scanner.component.bluetooth.android.AndroidBluetoothAdapter +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object ScannerConnectModule { + + /* + * This is the simulated implementation of the BluetoothAdapter + * uncomment this and the import of the scanner mock module in the build.gradle.kts + */ +/* + @Provides + @Singleton + fun provideComponentBluetoothAdapter(@ApplicationContext ctx: Context): ComponentBluetoothAdapter = + SimulatedBluetoothAdapter(SimulatedScannerManager( + simulationMode = SimulationMode.V2, + isAdapterNull = false, + isAdapterEnabled = true, + isDeviceBonded = true, + deviceName = "Simulated Scanner", + outgoingStreamObservers = setOf(), + context = ctx, + )) +*/ + + /* + * This is the real implementation of the BluetoothAdapter + */ + @Provides + @Singleton + fun provideComponentBluetoothAdapter(): ComponentBluetoothAdapter = + AndroidBluetoothAdapter(BluetoothAdapter.getDefaultAdapter()) +} diff --git a/fingerprint/connect/src/test/java/com/simprints/fingerprint/connect/screens/ConnectScannerViewModelTest.kt b/fingerprint/connect/src/test/java/com/simprints/fingerprint/connect/screens/ConnectScannerViewModelTest.kt index 022c5db3a6..ff074cb07c 100644 --- a/fingerprint/connect/src/test/java/com/simprints/fingerprint/connect/screens/ConnectScannerViewModelTest.kt +++ b/fingerprint/connect/src/test/java/com/simprints/fingerprint/connect/screens/ConnectScannerViewModelTest.kt @@ -25,7 +25,7 @@ import com.simprints.fingerprint.infra.scanner.exceptions.unexpected.UnknownScan import com.simprints.fingerprint.infra.scanner.tools.SerialNumberConverter import com.simprints.fingerprint.infra.scanner.wrapper.ScannerFactory import com.simprints.fingerprint.infra.scanner.wrapper.ScannerWrapper -import com.simprints.fingerprint.scannermock.dummy.DummyBluetoothDevice +import com.simprints.fingerprint.infra.scannermock.dummy.DummyBluetoothDevice import com.simprints.infra.config.store.models.FingerprintConfiguration import com.simprints.infra.config.store.models.FingerprintConfiguration.BioSdk.SECUGEN_SIM_MATCHER import com.simprints.infra.config.sync.ConfigManager diff --git a/fingerprint/infra/scanner/build.gradle.kts b/fingerprint/infra/scanner/build.gradle.kts index 2d59ea323d..1ff533ace1 100644 --- a/fingerprint/infra/scanner/build.gradle.kts +++ b/fingerprint/infra/scanner/build.gradle.kts @@ -23,9 +23,6 @@ dependencies { // RxJava api(libs.rxJava2.core) implementation(libs.rxJava2.kotlin) - - // If mock/dummy BT adapter is required test implementation can be switched to regular one testImplementation(project(":fingerprint:infra:scannermock")) - //implementation(project(":fingerprint:infra:scannermock")) } diff --git a/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/ScannerModule.kt b/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/ScannerModule.kt index bd236cec32..fa551f9dc3 100644 --- a/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/ScannerModule.kt +++ b/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/ScannerModule.kt @@ -1,10 +1,7 @@ package com.simprints.fingerprint.infra.scanner -import android.bluetooth.BluetoothAdapter import android.content.Context import android.nfc.NfcAdapter -import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothAdapter -import com.simprints.fingerprint.infra.scanner.component.bluetooth.android.AndroidBluetoothAdapter import com.simprints.fingerprint.infra.scanner.nfc.ComponentNfcAdapter import com.simprints.fingerprint.infra.scanner.nfc.android.AndroidNfcAdapter import dagger.Binds @@ -13,7 +10,6 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton @Module( includes = [ @@ -35,18 +31,4 @@ object FingerprintDependenciesModule { @Provides fun provideNfcAdapter(@ApplicationContext context: Context): ComponentNfcAdapter = AndroidNfcAdapter(NfcAdapter.getDefaultAdapter(context)) - - /** - * To provide alternative implementation for BT adapter replace - * returned instance with any of the mock implementations: - * - DummyBluetoothAdapter() - * - AndroidRecordBluetoothAdapter() - * - SimulatedBluetoothAdapter(SimulatedScannerManager(...)) - * - * Also change the dependency declaration in build.gradle.kts - */ - @Provides - @Singleton - fun provideComponentBluetoothAdapter(): ComponentBluetoothAdapter = - AndroidBluetoothAdapter(BluetoothAdapter.getDefaultAdapter()) } diff --git a/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/component/bluetooth/android/AndroidBluetoothAdapter.kt b/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/component/bluetooth/android/AndroidBluetoothAdapter.kt index a2e3cd839c..1bc4d8f232 100644 --- a/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/component/bluetooth/android/AndroidBluetoothAdapter.kt +++ b/fingerprint/infra/scanner/src/main/java/com/simprints/fingerprint/infra/scanner/component/bluetooth/android/AndroidBluetoothAdapter.kt @@ -5,7 +5,7 @@ import android.bluetooth.BluetoothAdapter import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothAdapter import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothDevice -internal class AndroidBluetoothAdapter(private val adapter: BluetoothAdapter?) : ComponentBluetoothAdapter { +class AndroidBluetoothAdapter(private val adapter: BluetoothAdapter?) : ComponentBluetoothAdapter { override fun isNull(): Boolean = adapter == null diff --git a/fingerprint/infra/scanner/src/test/java/com/simprints/fingerprint/infra/scanner/ScannerPairingManagerTest.kt b/fingerprint/infra/scanner/src/test/java/com/simprints/fingerprint/infra/scanner/ScannerPairingManagerTest.kt index a4ca2c9b97..d14ff65d8d 100644 --- a/fingerprint/infra/scanner/src/test/java/com/simprints/fingerprint/infra/scanner/ScannerPairingManagerTest.kt +++ b/fingerprint/infra/scanner/src/test/java/com/simprints/fingerprint/infra/scanner/ScannerPairingManagerTest.kt @@ -9,7 +9,7 @@ import com.simprints.fingerprint.infra.scanner.exceptions.safe.MultiplePossibleS import com.simprints.fingerprint.infra.scanner.exceptions.safe.ScannerNotPairedException import com.simprints.fingerprint.infra.scanner.tools.ScannerGenerationDeterminer import com.simprints.fingerprint.infra.scanner.tools.SerialNumberConverter -import com.simprints.fingerprint.scannermock.dummy.DummyBluetoothDevice +import com.simprints.fingerprint.infra.scannermock.dummy.DummyBluetoothDevice import com.simprints.infra.config.store.ConfigRepository import com.simprints.infra.config.store.models.FingerprintConfiguration import com.simprints.infra.recent.user.activity.RecentUserActivityManager diff --git a/fingerprint/infra/scannermock/README.md b/fingerprint/infra/scannermock/README.md index 6a071d7bda..fa2d79acee 100644 --- a/fingerprint/infra/scannermock/README.md +++ b/fingerprint/infra/scannermock/README.md @@ -1,13 +1,47 @@ -# Fingerprint Scanner Mock - -This package contains alternatives for `android.bluetooth.BluetoothAdapter` and associated classes that are designed for -use with the Bluetooth Component Abstractions for mocking, debugging, and testing. The options are as follows: - -- [Simulated Bluetooth Adapter](./src/main/java/com/simprints/fingerprint/scannermock/simulated/README.md) - \- This is for an elaborate mock of the Vero fingerprint scanner, that simulates responses and interaction faithful to how the real scanner would operate. - For use in integration testing or for manual testing/debugging code easily or where we want the scanner to always respond in a certain way. -- [Dummy Bluetooth Adapter](./src/main/java/com/simprints/fingerprint/scannermock/dummy/README.md) - \- This is a very simple skeleton that can be used in tests where communication with the scanner does not occur, - but we just want something simple to pass as the `ComponentBluetoothAdapter` to allow code to compile. -- [Android Record Bluetooth Adapter](./src/main/java/com/simprints/fingerprint/scannermock/record/README.md) - \- This uses the actual `android.bluetooth.BluetoothAdapter` but with ability to record the received byte streams into a file for debugging purposes. +# Scanner Mock Module README + +The Scanner Mock Module provides alternative Bluetooth adapters for replacing real Vero2 or Vero1 scanners in testing environments. This module includes adapters to simulate fingerprint capturing scenarios, record Bluetooth data for debugging, or serve as simple placeholders in basic tests. This README provides guidance on setting up and using each of these mock adapters in your testing environment. + +--- + +## 1. Replacing the Real Android Bluetooth Adapter + +To replace the real `AndroidBluetoothAdapter` with one of the mock adapters, select the appropriate adapter for your test case: +- Substitute the real `AndroidBluetoothAdapter` with `SimulatedBluetoothAdapter` in your DI setup. [Example](../../connect/src/main/java/com/simprints/fingerprint/connect/ScannerConnectModule.kt). +### A. **SimulatedBluetoothAdapter** + +Use the `SimulatedBluetoothAdapter` to fully simulate the fingerprint capturing scenario in NEC or SimMatcher flows. This adapter is designed to emulate the complete scanning and capturing process, providing success and error responses similar to those from real scanners. + +#### Setup +- Configure the test data in `SimulatedUn20ResponseHelper` to match your test case needs. This helper currently contains all necessary data for a successful fingerprint collection flow, but you can adjust it for specific scenarios or errors. + +#### Reference +More details on using the `SimulatedBluetoothAdapter` can be found in the [README](../scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/README.md). + +### B. **AndroidRecordBluetoothAdapter** + +The `AndroidRecordBluetoothAdapter` mimics the real Android Bluetooth components with the added functionality of recording incoming data bytes from the scanner to a file. This is particularly useful for debugging purposes, allowing you to analyze the exact data transmitted during the fingerprint scanning process. +More details on using the `AndroidRecordBluetoothAdapter` can be found in the [README](../scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/README.md). +### C. **DummyBluetoothAdapter** + +The `DummyBluetoothAdapter` serves as a simple placeholder adapter, useful in tests that require a Bluetooth component but do not involve actual data transmission or device communication. + +- This adapter is beneficial when: + - You need a `ComponentBluetoothAdapter` instance that is enabled. + - You need access to the MAC address of the `ComponentBluetoothDevice`. + +> **Note**: Attempts to connect or communicate with the `DummyBluetoothAdapter` will throw an `UnsupportedOperationException`. + +--- + +## Summary + +Each mock adapter provides specific functionality suited to different test requirements: + +| Adapter | Purpose | +|----------------------------|-------------------------------------------------------| +| **SimulatedBluetoothAdapter** | Full simulation of the fingerprint capture process | +| **AndroidRecordBluetoothAdapter** | Real Bluetooth functionality with data recording | +| **DummyBluetoothAdapter** | Basic placeholder with minimal Bluetooth properties| + +Choose the adapter that best fits your test scenario to effectively mock the scanner behavior and ensure accurate and efficient testing. diff --git a/fingerprint/infra/scannermock/src/main/AndroidManifest.xml b/fingerprint/infra/scannermock/src/main/AndroidManifest.xml index 4f1c58a74d..8072ee00db 100644 --- a/fingerprint/infra/scannermock/src/main/AndroidManifest.xml +++ b/fingerprint/infra/scannermock/src/main/AndroidManifest.xml @@ -1,5 +1,2 @@ - - - - - + + diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/README.md b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/README.md similarity index 100% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/README.md rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/README.md diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/DummyBluetoothAdapter.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/DummyBluetoothAdapter.kt similarity index 92% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/DummyBluetoothAdapter.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/DummyBluetoothAdapter.kt index a517337d68..3d36c415e9 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/DummyBluetoothAdapter.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/DummyBluetoothAdapter.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.dummy +package com.simprints.fingerprint.infra.scannermock.dummy import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothAdapter import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothDevice diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/DummyBluetoothDevice.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/DummyBluetoothDevice.kt similarity index 95% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/DummyBluetoothDevice.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/DummyBluetoothDevice.kt index 6962c657d4..c9809da9a0 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/DummyBluetoothDevice.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/DummyBluetoothDevice.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.dummy +package com.simprints.fingerprint.infra.scannermock.dummy import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothDevice import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothSocket diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/README.md b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/README.md similarity index 100% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/dummy/README.md rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/dummy/README.md diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothAdapter.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothAdapter.kt similarity index 95% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothAdapter.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothAdapter.kt index 888d1f2e9e..ea95e80fb2 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothAdapter.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothAdapter.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.record +package com.simprints.fingerprint.infra.scannermock.record import android.bluetooth.BluetoothAdapter import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothAdapter diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothDevice.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothDevice.kt similarity index 93% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothDevice.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothDevice.kt index 7acfd70c90..312428a00d 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothDevice.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothDevice.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.record +package com.simprints.fingerprint.infra.scannermock.record import android.bluetooth.BluetoothDevice import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothDevice diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothSocket.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothSocket.kt similarity index 94% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothSocket.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothSocket.kt index c904ca1ca1..4c14cd86ed 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/AndroidRecordBluetoothSocket.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/AndroidRecordBluetoothSocket.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.record +package com.simprints.fingerprint.infra.scannermock.record import android.bluetooth.BluetoothSocket import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothSocket diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/README.md b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/README.md similarity index 100% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/record/README.md rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/record/README.md diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/README.md b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/README.md similarity index 100% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/README.md rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/README.md diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/SimulatedScannerManager.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/SimulatedScannerManager.kt similarity index 75% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/SimulatedScannerManager.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/SimulatedScannerManager.kt index d32b752c73..35c1474d77 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/SimulatedScannerManager.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/SimulatedScannerManager.kt @@ -1,15 +1,16 @@ -package com.simprints.fingerprint.scannermock.simulated - -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedFinger -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedScanner -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedScannerState -import com.simprints.fingerprint.scannermock.simulated.common.SimulationSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.component.SimulatedBluetoothDevice -import com.simprints.fingerprint.scannermock.simulated.tools.OutputStreamInterceptor -import com.simprints.fingerprint.scannermock.simulated.v1.SimulatedScannerStateV1 -import com.simprints.fingerprint.scannermock.simulated.v1.SimulatedScannerV1 -import com.simprints.fingerprint.scannermock.simulated.v2.SimulatedScannerStateV2 -import com.simprints.fingerprint.scannermock.simulated.v2.SimulatedScannerV2 +package com.simprints.fingerprint.infra.scannermock.simulated + +import android.content.Context +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedFinger +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedScanner +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedScannerState +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulationSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.component.SimulatedBluetoothDevice +import com.simprints.fingerprint.infra.scannermock.simulated.tools.OutputStreamInterceptor +import com.simprints.fingerprint.infra.scannermock.simulated.v1.SimulatedScannerStateV1 +import com.simprints.fingerprint.infra.scannermock.simulated.v1.SimulatedScannerV1 +import com.simprints.fingerprint.infra.scannermock.simulated.v2.SimulatedScannerStateV2 +import com.simprints.fingerprint.infra.scannermock.simulated.v2.SimulatedScannerV2 import io.reactivex.Observer import io.reactivex.observers.DisposableObserver import java.io.PipedInputStream @@ -26,7 +27,8 @@ class SimulatedScannerManager( var isAdapterEnabled: Boolean = true, var isDeviceBonded: Boolean = true, var deviceName: String = "", - var outgoingStreamObservers: Set> = setOf()) { + var outgoingStreamObservers: Set> = setOf(), + var context: Context?,) { private var simulatedScanner: SimulatedScanner? = null @@ -97,6 +99,6 @@ class SimulatedScannerManager( } companion object { - const val DEFAULT_MAC_ADDRESS: String = "F0:AC:D7:CE:E3:B5" + const val DEFAULT_MAC_ADDRESS: String = "F0:AC:D7:C0:03:B5" } } diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/SimulationMode.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/SimulationMode.kt new file mode 100644 index 0000000000..a3ea09a19c --- /dev/null +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/SimulationMode.kt @@ -0,0 +1,5 @@ +package com.simprints.fingerprint.infra.scannermock.simulated + +enum class SimulationMode { + V1, V2 +} diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedFinger.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedFinger.kt similarity index 90% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedFinger.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedFinger.kt index 8a6c322897..bd8b0de85b 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedFinger.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedFinger.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.common +package com.simprints.fingerprint.infra.scannermock.simulated.common enum class SimulatedFinger { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedScanner.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedScanner.kt similarity index 76% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedScanner.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedScanner.kt index ce1b11075d..fa21e0cded 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedScanner.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedScanner.kt @@ -1,8 +1,8 @@ -package com.simprints.fingerprint.scannermock.simulated.common +package com.simprints.fingerprint.infra.scannermock.simulated.common -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.common.SimulationSpeedBehaviour.INSTANT -import com.simprints.fingerprint.scannermock.simulated.common.SimulationSpeedBehaviour.REALISTIC +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulationSpeedBehaviour.INSTANT +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulationSpeedBehaviour.REALISTIC import java.io.OutputStream abstract class SimulatedScanner(val scannerManager: SimulatedScannerManager) { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedScannerState.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedScannerState.kt similarity index 62% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedScannerState.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedScannerState.kt index 364df4a9d0..8cc1353800 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulatedScannerState.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulatedScannerState.kt @@ -1,3 +1,3 @@ -package com.simprints.fingerprint.scannermock.simulated.common +package com.simprints.fingerprint.infra.scannermock.simulated.common abstract class SimulatedScannerState(val eventQueue: MutableList Unit> = mutableListOf()) diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulationSpeedBehaviour.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulationSpeedBehaviour.kt similarity index 80% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulationSpeedBehaviour.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulationSpeedBehaviour.kt index 547c07a56e..d1f033fb14 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/common/SimulationSpeedBehaviour.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/common/SimulationSpeedBehaviour.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.common +package com.simprints.fingerprint.infra.scannermock.simulated.common enum class SimulationSpeedBehaviour { INSTANT, diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothAdapter.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothAdapter.kt similarity index 83% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothAdapter.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothAdapter.kt index abfcc9b6e1..4e2bdf5423 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothAdapter.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothAdapter.kt @@ -1,8 +1,8 @@ -package com.simprints.fingerprint.scannermock.simulated.component +package com.simprints.fingerprint.infra.scannermock.simulated.component import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothAdapter import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothDevice -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager class SimulatedBluetoothAdapter(private val simulatedScannerManager: SimulatedScannerManager) : ComponentBluetoothAdapter { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothDevice.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothDevice.kt similarity index 84% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothDevice.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothDevice.kt index 0a9184a089..56e54e29ae 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothDevice.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothDevice.kt @@ -1,8 +1,8 @@ -package com.simprints.fingerprint.scannermock.simulated.component +package com.simprints.fingerprint.infra.scannermock.simulated.component import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothDevice import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothSocket -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager import java.util.UUID diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothSocket.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothSocket.kt similarity index 79% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothSocket.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothSocket.kt index 69a77f672d..29d015ec4b 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/component/SimulatedBluetoothSocket.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/component/SimulatedBluetoothSocket.kt @@ -1,7 +1,7 @@ -package com.simprints.fingerprint.scannermock.simulated.component +package com.simprints.fingerprint.infra.scannermock.simulated.component import com.simprints.fingerprint.infra.scanner.component.bluetooth.ComponentBluetoothSocket -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager import java.io.InputStream import java.io.OutputStream diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/tools/ByteArrayTools.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/tools/ByteArrayTools.kt similarity index 91% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/tools/ByteArrayTools.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/tools/ByteArrayTools.kt index 437a23315b..4de65aaf3f 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/tools/ByteArrayTools.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/tools/ByteArrayTools.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.tools +package com.simprints.fingerprint.infra.scannermock.simulated.tools /** @throws IndexOutOfBoundsException if odd number of hex characters */ fun hexStringToByteArray(string: String): ByteArray { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/tools/OutputStreamInterceptor.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/tools/OutputStreamInterceptor.kt similarity index 93% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/tools/OutputStreamInterceptor.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/tools/OutputStreamInterceptor.kt index f782d569d4..0f7e110337 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/tools/OutputStreamInterceptor.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/tools/OutputStreamInterceptor.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.tools +package com.simprints.fingerprint.infra.scannermock.simulated.tools import io.reactivex.Observer import java.io.OutputStream diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/ScannerStateHandlerV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/ScannerStateHandlerV1.kt similarity index 86% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/ScannerStateHandlerV1.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/ScannerStateHandlerV1.kt index ad2ae536d1..04d0d4eb19 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/ScannerStateHandlerV1.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/ScannerStateHandlerV1.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v1 +package com.simprints.fingerprint.infra.scannermock.simulated.v1 import com.simprints.fingerprint.infra.scanner.v1.Message import com.simprints.fingerprint.infra.scanner.v1.enums.MESSAGE_TYPE diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedCommandParserV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedCommandParserV1.kt similarity index 88% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedCommandParserV1.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedCommandParserV1.kt index a1c461e5bd..28f3c0ce48 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedCommandParserV1.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedCommandParserV1.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v1 +package com.simprints.fingerprint.infra.scannermock.simulated.v1 import com.simprints.fingerprint.infra.scanner.v1.Message import java.io.PipedInputStream diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedFingerV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedFingerV1.kt similarity index 99% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedFingerV1.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedFingerV1.kt index 413ff7e205..4c04e897fa 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedFingerV1.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedFingerV1.kt @@ -1,6 +1,6 @@ -package com.simprints.fingerprint.scannermock.simulated.v1 +package com.simprints.fingerprint.infra.scannermock.simulated.v1 -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedFinger +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedFinger enum class SimulatedFingerV1(val imageQualityResponse: String = "fa fa fa fa 0e 00 8b 00 63 00 f5 f5 f5 f5 ", // Quality score 99 diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedResponseHelperV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedResponseHelperV1.kt similarity index 95% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedResponseHelperV1.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedResponseHelperV1.kt index 19d3e25d12..70c7685cce 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedResponseHelperV1.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedResponseHelperV1.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v1 +package com.simprints.fingerprint.infra.scannermock.simulated.v1 import com.simprints.fingerprint.infra.scanner.v1.Message import com.simprints.fingerprint.infra.scanner.v1.enums.MESSAGE_TYPE.CAPTURE_IMAGE @@ -15,8 +15,8 @@ import com.simprints.fingerprint.infra.scanner.v1.enums.MESSAGE_TYPE.SET_RUNNING import com.simprints.fingerprint.infra.scanner.v1.enums.MESSAGE_TYPE.SET_UI import com.simprints.fingerprint.infra.scanner.v1.enums.MESSAGE_TYPE.UN20_SHUTDOWN import com.simprints.fingerprint.infra.scanner.v1.enums.MESSAGE_TYPE.UN20_WAKEUP -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.tools.byteArrayFromHexString +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.tools.byteArrayFromHexString class SimulatedResponseHelperV1(private val simulatedScannerManager: SimulatedScannerManager, private val simulatedScanner: SimulatedScannerV1) { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedScannerStateV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedScannerStateV1.kt new file mode 100644 index 0000000000..8a3868575c --- /dev/null +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedScannerStateV1.kt @@ -0,0 +1,5 @@ +package com.simprints.fingerprint.infra.scannermock.simulated.v1 + +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedScannerState + +class SimulatedScannerStateV1(var isUn20On: Boolean = false) : SimulatedScannerState() diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedScannerV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedScannerV1.kt similarity index 77% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedScannerV1.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedScannerV1.kt index 77b4d16510..badddc39c1 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedScannerV1.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v1/SimulatedScannerV1.kt @@ -1,8 +1,8 @@ -package com.simprints.fingerprint.scannermock.simulated.v1 +package com.simprints.fingerprint.infra.scannermock.simulated.v1 import com.simprints.fingerprint.infra.scanner.v1.Message -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedScanner +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedScanner import java.io.OutputStream class SimulatedScannerV1(simulatedScannerManager: SimulatedScannerManager, diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/ScannerStateHandlerV2.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/ScannerStateHandlerV2.kt similarity index 98% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/ScannerStateHandlerV2.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/ScannerStateHandlerV2.kt index fe6c806ea6..2ff2defc90 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/ScannerStateHandlerV2.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/ScannerStateHandlerV2.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2 +package com.simprints.fingerprint.infra.scannermock.simulated.v2 import com.simprints.fingerprint.infra.scanner.v2.domain.Mode import com.simprints.fingerprint.infra.scanner.v2.domain.OutgoingMessage diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedCommandInputStream.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedCommandInputStream.kt similarity index 99% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedCommandInputStream.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedCommandInputStream.kt index fee4f7f28b..0ab6535498 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedCommandInputStream.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedCommandInputStream.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2 +package com.simprints.fingerprint.infra.scannermock.simulated.v2 import com.simprints.fingerprint.infra.scanner.v2.domain.Mode import com.simprints.fingerprint.infra.scanner.v2.domain.Mode.CYPRESS_OTA diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedFingerV2.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedFingerV2.kt similarity index 97% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedFingerV2.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedFingerV2.kt index 6f9f4b94f6..a2e22e42de 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedFingerV2.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedFingerV2.kt @@ -1,8 +1,8 @@ -package com.simprints.fingerprint.scannermock.simulated.v2 +package com.simprints.fingerprint.infra.scannermock.simulated.v2 import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.CaptureFingerprintResult -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedFinger -import com.simprints.fingerprint.scannermock.simulated.tools.byteArrayFromHexString +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedFinger +import com.simprints.fingerprint.infra.scannermock.simulated.tools.byteArrayFromHexString enum class SimulatedFingerV2( val captureFingerprintResult: CaptureFingerprintResult = CaptureFingerprintResult.OK, diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedResponseOutputStream.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedResponseOutputStream.kt similarity index 96% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedResponseOutputStream.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedResponseOutputStream.kt index a365ee235a..487c31e5c6 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedResponseOutputStream.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedResponseOutputStream.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2 +package com.simprints.fingerprint.infra.scannermock.simulated.v2 import com.simprints.fingerprint.infra.scanner.v2.domain.IncomingMessage import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.MainMessage diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedScannerStateV2.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedScannerStateV2.kt similarity index 92% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedScannerStateV2.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedScannerStateV2.kt index 07d6780cf6..4cd3d3d75f 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedScannerStateV2.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedScannerStateV2.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2 +package com.simprints.fingerprint.infra.scannermock.simulated.v2 import com.simprints.fingerprint.infra.scanner.v2.domain.Mode import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.Dpi @@ -10,7 +10,7 @@ import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.model import com.simprints.fingerprint.infra.scanner.v2.domain.root.models.CypressFirmwareVersion import com.simprints.fingerprint.infra.scanner.v2.domain.root.models.UnifiedVersionInformation import com.simprints.fingerprint.infra.scanner.v2.scanner.Scanner -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedScannerState +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedScannerState class SimulatedScannerStateV2( var mode: Mode = Mode.ROOT, diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedScannerV2.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedScannerV2.kt similarity index 82% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedScannerV2.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedScannerV2.kt index ae6f0e0d9f..007549ac52 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/SimulatedScannerV2.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/SimulatedScannerV2.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2 +package com.simprints.fingerprint.infra.scannermock.simulated.v2 import android.annotation.SuppressLint import com.simprints.fingerprint.infra.scanner.v2.domain.IncomingMessage @@ -6,12 +6,12 @@ import com.simprints.fingerprint.infra.scanner.v2.domain.OutgoingMessage import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.events.TriggerButtonPressedEvent import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.events.Un20StateChangeEvent import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.models.DigitalValue -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedScanner -import com.simprints.fingerprint.scannermock.simulated.v2.response.SimulatedResponseHelperV2 -import com.simprints.fingerprint.scannermock.simulated.v2.response.SimulatedRootResponseHelper -import com.simprints.fingerprint.scannermock.simulated.v2.response.SimulatedUn20ResponseHelper -import com.simprints.fingerprint.scannermock.simulated.v2.response.SimulatedVeroResponseHelper +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulatedScanner +import com.simprints.fingerprint.infra.scannermock.simulated.v2.response.SimulatedResponseHelperV2 +import com.simprints.fingerprint.infra.scannermock.simulated.v2.response.SimulatedRootResponseHelper +import com.simprints.fingerprint.infra.scannermock.simulated.v2.response.SimulatedUn20ResponseHelper +import com.simprints.fingerprint.infra.scannermock.simulated.v2.response.SimulatedVeroResponseHelper import io.reactivex.Flowable import io.reactivex.rxkotlin.subscribeBy import java.io.OutputStream @@ -34,7 +34,7 @@ class SimulatedScannerV2(simulatedScannerManager: SimulatedScannerManager, .apply { respondToCommands(simulatedCommandInputStream.veroCommands) } @Suppress("unused") - private val simulatedUn20ResponseHelper = SimulatedUn20ResponseHelper(simulatedScannerManager, this) + private val simulatedUn20ResponseHelper = SimulatedUn20ResponseHelper(simulatedScannerManager) .apply { respondToCommands(simulatedCommandInputStream.un20Commands) } override fun handleAppToScannerEvent(bytes: ByteArray, returnStream: OutputStream) { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedResponseHelperV2.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedResponseHelperV2.kt similarity index 78% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedResponseHelperV2.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedResponseHelperV2.kt index 5e57e65ae2..3782660f4e 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedResponseHelperV2.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedResponseHelperV2.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2.response +package com.simprints.fingerprint.infra.scannermock.simulated.v2.response import com.simprints.fingerprint.infra.scanner.v2.domain.IncomingMessage import com.simprints.fingerprint.infra.scanner.v2.domain.OutgoingMessage diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedRootResponseHelper.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedRootResponseHelper.kt similarity index 73% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedRootResponseHelper.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedRootResponseHelper.kt index 1233506b5a..b2d750681e 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedRootResponseHelper.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedRootResponseHelper.kt @@ -1,21 +1,24 @@ -package com.simprints.fingerprint.scannermock.simulated.v2.response +package com.simprints.fingerprint.infra.scannermock.simulated.v2.response import com.simprints.fingerprint.infra.scanner.v2.domain.root.RootCommand import com.simprints.fingerprint.infra.scanner.v2.domain.root.RootResponse import com.simprints.fingerprint.infra.scanner.v2.domain.root.commands.EnterCypressOtaModeCommand import com.simprints.fingerprint.infra.scanner.v2.domain.root.commands.EnterMainModeCommand import com.simprints.fingerprint.infra.scanner.v2.domain.root.commands.EnterStmOtaModeCommand +import com.simprints.fingerprint.infra.scanner.v2.domain.root.commands.GetCypressVersionCommand import com.simprints.fingerprint.infra.scanner.v2.domain.root.commands.GetVersionCommand import com.simprints.fingerprint.infra.scanner.v2.domain.root.commands.SetVersionCommand +import com.simprints.fingerprint.infra.scanner.v2.domain.root.models.CypressFirmwareVersion import com.simprints.fingerprint.infra.scanner.v2.domain.root.responses.EnterCypressOtaModeResponse import com.simprints.fingerprint.infra.scanner.v2.domain.root.responses.EnterMainModeResponse import com.simprints.fingerprint.infra.scanner.v2.domain.root.responses.EnterStmOtaModeResponse +import com.simprints.fingerprint.infra.scanner.v2.domain.root.responses.GetCypressVersionResponse import com.simprints.fingerprint.infra.scanner.v2.domain.root.responses.GetVersionResponse import com.simprints.fingerprint.infra.scanner.v2.domain.root.responses.SetVersionResponse -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.common.RealisticSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.common.SimulationSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.v2.SimulatedScannerV2 +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.common.RealisticSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulationSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.v2.SimulatedScannerV2 class SimulatedRootResponseHelper(private val simulatedScannerManager: SimulatedScannerManager, private val simulatedScannerV2: SimulatedScannerV2) : SimulatedResponseHelperV2 { @@ -27,6 +30,7 @@ class SimulatedRootResponseHelper(private val simulatedScannerManager: Simulated is EnterStmOtaModeCommand -> EnterStmOtaModeResponse() is GetVersionCommand -> GetVersionResponse(simulatedScannerV2.scannerState.versionInfo) is SetVersionCommand -> SetVersionResponse() + is GetCypressVersionCommand -> GetCypressVersionResponse(CypressFirmwareVersion(1,0,0,0)) else -> throw UnsupportedOperationException("Un-mocked response to $command in SimulatedRootResponseHelper") } diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedUn20ResponseHelper.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedUn20ResponseHelper.kt similarity index 53% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedUn20ResponseHelper.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedUn20ResponseHelper.kt index 9d6c11039b..6f714b33cc 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedUn20ResponseHelper.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedUn20ResponseHelper.kt @@ -1,63 +1,93 @@ -package com.simprints.fingerprint.scannermock.simulated.v2.response +package com.simprints.fingerprint.infra.scannermock.simulated.v2.response + import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.Un20Command import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.Un20Response import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.CaptureFingerprintCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetImageCommand +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetImageDistortionConfigurationMatrixCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetImageQualityCommand +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetImageQualityPreviewCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetSupportedImageFormatsCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetSupportedTemplateTypesCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetTemplateCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetUn20ExtendedAppVersionCommand +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.GetUnprocessedImageCommand +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.commands.SetScanLedStateCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.ImageData import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.ImageFormat +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.OperationResultCode import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.TemplateData import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.TemplateType import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.models.Un20ExtendedAppVersion import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.CaptureFingerprintResponse +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetImageDistortionConfigurationMatrixResponse +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetImageQualityPreviewResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetImageQualityResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetImageResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetSupportedImageFormatsResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetSupportedTemplateTypesResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetTemplateResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.GetUn20ExtendedAppVersionResponse +import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.un20.responses.SetScanLedStateResponse import com.simprints.fingerprint.infra.scanner.v2.tools.crc.Crc32Calculator -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.common.RealisticSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.common.SimulationSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.v2.SimulatedFingerV2 -import com.simprints.fingerprint.scannermock.simulated.v2.SimulatedScannerV2 -import com.simprints.fingerprint.scannermock.simulated.v2.toV2 -import kotlin.random.Random +import com.simprints.fingerprint.infra.scannermock.R +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.common.RealisticSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulationSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.v2.SimulatedFingerV2 +import com.simprints.fingerprint.infra.scannermock.simulated.v2.toV2 -class SimulatedUn20ResponseHelper(private val simulatedScannerManager: SimulatedScannerManager, - private val simulatedScannerV2: SimulatedScannerV2) : SimulatedResponseHelperV2 { +class SimulatedUn20ResponseHelper( + private val simulatedScannerManager: SimulatedScannerManager +) : SimulatedResponseHelperV2 { override fun createResponseToCommand(command: Un20Command): Un20Response { val response = when (command) { - is GetUn20ExtendedAppVersionCommand -> GetUn20ExtendedAppVersionResponse(Un20ExtendedAppVersion("0.E-1.1")) + is GetUn20ExtendedAppVersionCommand -> GetUn20ExtendedAppVersionResponse( + Un20ExtendedAppVersion("0.E-1.1") + ) is CaptureFingerprintCommand -> CaptureFingerprintResponse( simulatedScannerManager.currentMockFinger().toV2() - .also { if (it == SimulatedFingerV2.NO_FINGER) simulatedScannerManager.cycleToNextFinger() } - .captureFingerprintResult + .also { if (it == SimulatedFingerV2.NO_FINGER) simulatedScannerManager.cycleToNextFinger() }.captureFingerprintResult + ) + is GetSupportedTemplateTypesCommand -> GetSupportedTemplateTypesResponse( + setOf( + TemplateType.ISO_19794_2_2011 + ) ) - is GetSupportedTemplateTypesCommand -> GetSupportedTemplateTypesResponse(setOf(TemplateType.ISO_19794_2_2011)) - is GetTemplateCommand -> GetTemplateResponse(command.templateType, - TemplateData( + is GetTemplateCommand -> GetTemplateResponse( + command.templateType, TemplateData( simulatedScannerManager.currentMockFinger().toV2().templateBytes ) ).also { simulatedScannerManager.cycleToNextFinger() } - is GetSupportedImageFormatsCommand -> GetSupportedImageFormatsResponse(setOf(ImageFormat.RAW)) + is GetSupportedImageFormatsCommand -> GetSupportedImageFormatsResponse( + setOf( + ImageFormat.RAW, ImageFormat.WSQ + ) + ) is GetImageCommand -> { - val imageBytes = Random.nextBytes((120000 * (((simulatedScannerV2.scannerState.lastFingerCapturedDpi.value / 100) * 100) / 500f)).toInt()) - GetImageResponse(command.imageFormatData.imageFormat, - ImageData( - imageBytes, - Crc32Calculator().calculateCrc32(imageBytes) + val imageBytes = readFromResources(R.raw.corrected_fingerprint_image) + GetImageResponse( + command.imageFormatData.imageFormat, ImageData( + imageBytes, Crc32Calculator().calculateCrc32(imageBytes) ) ) } - is GetImageQualityCommand -> GetImageQualityResponse(simulatedScannerManager.currentMockFinger().toV2().imageQuality) + is GetImageQualityCommand -> GetImageQualityResponse( + simulatedScannerManager.currentMockFinger().toV2().imageQuality + ) + is SetScanLedStateCommand -> SetScanLedStateResponse(OperationResultCode.OK) + is GetImageQualityPreviewCommand -> GetImageQualityPreviewResponse(70) + is GetImageDistortionConfigurationMatrixCommand -> GetImageDistortionConfigurationMatrixResponse( + readFromResources(R.raw.image_distortion_config) + ) + + is GetUnprocessedImageCommand -> { + val imageBytes = readFromResources(R.raw.raw_image) + GetImageResponse(ImageFormat.WSQ,ImageData(imageBytes,1)) + } + else -> throw UnsupportedOperationException("Unmocked response to $command in SimulatedUn20ResponseHelper") } @@ -75,4 +105,11 @@ class SimulatedUn20ResponseHelper(private val simulatedScannerManager: Simulated return response } + + private fun readFromResources(resId: Int): ByteArray { + simulatedScannerManager.context?.resources?.openRawResource(resId)?.use { inputStream -> + return inputStream.readBytes() + } + return byteArrayOf(0) + } } diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedVeroResponseHelper.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedVeroResponseHelper.kt similarity index 93% rename from fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedVeroResponseHelper.kt rename to fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedVeroResponseHelper.kt index c53c1e876f..1687a2fedf 100644 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v2/response/SimulatedVeroResponseHelper.kt +++ b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/infra/scannermock/simulated/v2/response/SimulatedVeroResponseHelper.kt @@ -1,4 +1,4 @@ -package com.simprints.fingerprint.scannermock.simulated.v2.response +package com.simprints.fingerprint.infra.scannermock.simulated.v2.response import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.VeroCommand import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.VeroResponse @@ -36,10 +36,10 @@ import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.respo import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.responses.SetSmileLedStateResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.responses.SetTriggerButtonActiveResponse import com.simprints.fingerprint.infra.scanner.v2.domain.main.message.vero.responses.SetUn20OnResponse -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.common.RealisticSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.common.SimulationSpeedBehaviour -import com.simprints.fingerprint.scannermock.simulated.v2.SimulatedScannerV2 +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.common.RealisticSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.common.SimulationSpeedBehaviour +import com.simprints.fingerprint.infra.scannermock.simulated.v2.SimulatedScannerV2 class SimulatedVeroResponseHelper(private val simulatedScannerManager: SimulatedScannerManager, private val simulatedScannerV2: SimulatedScannerV2) : SimulatedResponseHelperV2 { diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/SimulationMode.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/SimulationMode.kt deleted file mode 100644 index 45ec2c8570..0000000000 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/SimulationMode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.simprints.fingerprint.scannermock.simulated - -enum class SimulationMode { - V1, V2 -} diff --git a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedScannerStateV1.kt b/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedScannerStateV1.kt deleted file mode 100644 index 2af1e8850d..0000000000 --- a/fingerprint/infra/scannermock/src/main/java/com/simprints/fingerprint/scannermock/simulated/v1/SimulatedScannerStateV1.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.simprints.fingerprint.scannermock.simulated.v1 - -import com.simprints.fingerprint.scannermock.simulated.common.SimulatedScannerState - -class SimulatedScannerStateV1(var isUn20On: Boolean = false) : SimulatedScannerState() diff --git a/fingerprint/infra/scannermock/src/main/res/raw/corrected_fingerprint_image.wsq b/fingerprint/infra/scannermock/src/main/res/raw/corrected_fingerprint_image.wsq new file mode 100644 index 0000000000..5af8051729 Binary files /dev/null and b/fingerprint/infra/scannermock/src/main/res/raw/corrected_fingerprint_image.wsq differ diff --git a/fingerprint/infra/scannermock/src/main/res/raw/image_distortion_config.raw b/fingerprint/infra/scannermock/src/main/res/raw/image_distortion_config.raw new file mode 100644 index 0000000000..b1eab19b95 Binary files /dev/null and b/fingerprint/infra/scannermock/src/main/res/raw/image_distortion_config.raw differ diff --git a/fingerprint/infra/scannermock/src/main/res/raw/raw_image.bin b/fingerprint/infra/scannermock/src/main/res/raw/raw_image.bin new file mode 100644 index 0000000000..cefd71ebfa Binary files /dev/null and b/fingerprint/infra/scannermock/src/main/res/raw/raw_image.bin differ diff --git a/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/scannermock/ByteArrayUtilsTest.kt b/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/infra/scannermock/ByteArrayUtilsTest.kt similarity index 78% rename from fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/scannermock/ByteArrayUtilsTest.kt rename to fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/infra/scannermock/ByteArrayUtilsTest.kt index bdc1c739f4..70e03d47bf 100644 --- a/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/scannermock/ByteArrayUtilsTest.kt +++ b/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/infra/scannermock/ByteArrayUtilsTest.kt @@ -1,7 +1,7 @@ -package com.simprints.fingerprint.scannermock +package com.simprints.fingerprint.infra.scannermock import com.simprints.fingerprint.infra.scanner.v1.Message -import com.simprints.fingerprint.scannermock.simulated.tools.hexStringToByteArray +import com.simprints.fingerprint.infra.scannermock.simulated.tools.hexStringToByteArray import org.junit.Assert.assertEquals import org.junit.Test import java.nio.ByteBuffer diff --git a/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/scannermock/OutgoingMessagesToScannerTest.kt b/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/infra/scannermock/OutgoingMessagesToScannerTest.kt similarity index 92% rename from fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/scannermock/OutgoingMessagesToScannerTest.kt rename to fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/infra/scannermock/OutgoingMessagesToScannerTest.kt index 272c47d029..2d5a5f3870 100644 --- a/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/scannermock/OutgoingMessagesToScannerTest.kt +++ b/fingerprint/infra/scannermock/src/test/java/com/simprints/fingerprint/infra/scannermock/OutgoingMessagesToScannerTest.kt @@ -1,12 +1,14 @@ -package com.simprints.fingerprint.scannermock +package com.simprints.fingerprint.infra.scannermock +import androidx.test.ext.junit.runners.AndroidJUnit4 import com.simprints.fingerprint.infra.scanner.v1.Scanner import com.simprints.fingerprint.infra.scanner.v1.ScannerCallback import com.simprints.fingerprint.infra.scanner.v1.wrappedScannerCallback -import com.simprints.fingerprint.scannermock.simulated.SimulatedScannerManager -import com.simprints.fingerprint.scannermock.simulated.SimulationMode -import com.simprints.fingerprint.scannermock.simulated.component.SimulatedBluetoothAdapter -import com.simprints.fingerprint.scannermock.simulated.tools.byteArrayFromHexString +import com.simprints.fingerprint.infra.scannermock.simulated.SimulatedScannerManager +import com.simprints.fingerprint.infra.scannermock.simulated.SimulationMode +import com.simprints.fingerprint.infra.scannermock.simulated.component.SimulatedBluetoothAdapter +import com.simprints.fingerprint.infra.scannermock.simulated.tools.byteArrayFromHexString +import io.mockk.mockk import io.reactivex.android.plugins.RxAndroidPlugins import io.reactivex.observers.TestObserver import io.reactivex.plugins.RxJavaPlugins @@ -15,11 +17,10 @@ import org.junit.Assert import org.junit.Before import org.junit.Test import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner import org.robolectric.shadows.ShadowLooper import java.util.concurrent.LinkedBlockingQueue -@RunWith(RobolectricTestRunner::class) +@RunWith(AndroidJUnit4::class) class OutgoingMessagesToScannerTest { private lateinit var testScanner: Scanner @@ -33,7 +34,11 @@ class OutgoingMessagesToScannerTest { testObserver = TestObserver() - val simulatedScannerManager = SimulatedScannerManager(SimulationMode.V1, outgoingStreamObservers = setOf(testObserver)) + val simulatedScannerManager = SimulatedScannerManager( + SimulationMode.V1, + outgoingStreamObservers = setOf(testObserver), + context = mockk(relaxed = true) + ) val simulatedBluetoothAdapter = SimulatedBluetoothAdapter(simulatedScannerManager) testScanner = Scanner("F0:AC:D7:C0:00:00", simulatedBluetoothAdapter)