diff --git a/central/ble_temperature/pubspec.yaml b/central/ble_temperature/pubspec.yaml index d5986a0..724162a 100644 --- a/central/ble_temperature/pubspec.yaml +++ b/central/ble_temperature/pubspec.yaml @@ -2,7 +2,7 @@ name: ble_temperature description: A new Flutter project. publish_to: 'none' -version: 1.0.4+5 +version: 1.0.5+6 environment: sdk: '>=3.0.5 <4.0.0' diff --git a/central/ble_temperature/test/src/bluetooth/domain/usecases/connect_test.dart b/central/ble_temperature/test/src/bluetooth/domain/usecases/connect_test.dart new file mode 100644 index 0000000..145e945 --- /dev/null +++ b/central/ble_temperature/test/src/bluetooth/domain/usecases/connect_test.dart @@ -0,0 +1,57 @@ +import 'package:ble_temperature/src/bluetooth/domain/enums/enums.dart'; +import 'package:ble_temperature/src/bluetooth/domain/respositories/ble_repository.dart'; +import 'package:ble_temperature/src/bluetooth/domain/usecases/connect.dart'; +import 'package:ble_temperature/src/bluetooth/domain/value_objects/device_connection_state_update.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:mockito/annotations.dart'; +import 'package:mockito/mockito.dart'; + +@GenerateNiceMocks([MockSpec()]) +import 'connect_test.mocks.dart'; + +void main() { + late Connect usecase; + late MockBleRepository repository; + + setUp(() { + repository = MockBleRepository(); + usecase = Connect(repository); + }); + + test('[Connect] should emit successfully [DeviceConnectionStateUpdate].', + () async { + const tUpdate = DeviceConnectionStateUpdate( + deviceId: '', + deviceConnectionState: DeviceConnectionState.connected, + ); + + const params = ConnectParams(deviceId: '', timeout: Duration.zero); + + when( + repository.connectToDevice( + deviceId: anyNamed('deviceId'), + connectionTimeout: anyNamed('connectionTimeout'), + ), + ).thenAnswer((_) => Stream.value(tUpdate)); + + final result = usecase(params); + + expect( + result, + emits( + const DeviceConnectionStateUpdate( + deviceId: '', + deviceConnectionState: DeviceConnectionState.connected, + ), + ), + ); + verify( + repository.connectToDevice( + deviceId: '', + connectionTimeout: Duration.zero, + ), + ).called(1); + verifyNoMoreInteractions(repository); + }); +}