57 lines
1.9 KiB
Dart
57 lines
1.9 KiB
Dart
import 'package:camera/camera.dart';
|
|
import 'package:finger_scanner/domain/usecases/scan_fingerprint.dart';
|
|
import 'package:finger_scanner/presentation/providers/scanner_provider.dart';
|
|
import 'package:finger_scanner/data/repositories/scanner_repository_impl.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:mocktail/mocktail.dart';
|
|
|
|
class MockScannerRepository extends Mock implements ScannerRepositoryImpl {}
|
|
|
|
class MockScanFingerprint extends Mock implements ScanFingerprint {}
|
|
|
|
class MockCameraController extends Mock implements CameraController {}
|
|
|
|
void main() {
|
|
late MockScannerRepository mockRepository;
|
|
late MockScanFingerprint mockScanUseCase;
|
|
|
|
setUp(() {
|
|
mockRepository = MockScannerRepository();
|
|
mockScanUseCase = MockScanFingerprint();
|
|
});
|
|
|
|
test('ScannerNotifier initializes with ScannerInitial', () {
|
|
final container = ProviderContainer(
|
|
overrides: [
|
|
scannerRepositoryProvider.overrideWithValue(mockRepository),
|
|
scanFingerprintUseCaseProvider.overrideWithValue(mockScanUseCase),
|
|
],
|
|
);
|
|
addTearDown(container.dispose);
|
|
|
|
expect(container.read(scannerProvider), isA<ScannerInitial>());
|
|
});
|
|
|
|
test(
|
|
'startSimulation switches state to ScannerReady with isSimulation=true',
|
|
() {
|
|
final container = ProviderContainer(
|
|
overrides: [
|
|
scannerRepositoryProvider.overrideWithValue(mockRepository),
|
|
scanFingerprintUseCaseProvider.overrideWithValue(mockScanUseCase),
|
|
],
|
|
);
|
|
addTearDown(container.dispose);
|
|
|
|
final notifier = container.read(scannerProvider.notifier);
|
|
notifier.startSimulation();
|
|
|
|
final state = container.read(scannerProvider);
|
|
expect(state, isA<ScannerReady>());
|
|
expect((state as ScannerReady).isSimulation, true);
|
|
expect(state.controller, null);
|
|
},
|
|
);
|
|
}
|