fingerprint/test/presentation/providers/scanner_provider_test.dart
Aastha Shrivastava 3132b7e8cd first commit
2026-01-17 12:54:01 +05:30

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);
},
);
}