diff --git a/packages/carp_connectivity_package/test/carp_connectivity_package_test.dart b/packages/carp_connectivity_package/test/carp_connectivity_package_test.dart index 61011888..36fc34df 100644 --- a/packages/carp_connectivity_package/test/carp_connectivity_package_test.dart +++ b/packages/carp_connectivity_package/test/carp_connectivity_package_test.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:carp_connectivity_package/connectivity.dart'; +import 'package:dchs_flutter_beacon/dchs_flutter_beacon.dart'; import 'package:test/test.dart'; import 'package:carp_serializable/carp_serializable.dart'; @@ -11,85 +12,84 @@ void main() { late StudyProtocol protocol; Smartphone phone; - setUp(() { - // Initialization of serialization - CarpMobileSensing(); + setUp( + () { + // Initialization of serialization + CarpMobileSensing(); - // register the context sampling package - SamplingPackageRegistry().register(ConnectivitySamplingPackage()); + // register the context sampling package + SamplingPackageRegistry().register(ConnectivitySamplingPackage()); - // Create a new study protocol. - protocol = StudyProtocol( - ownerId: 'alex@uni.dk', - name: 'Connectivity package test', - ); - - // Define which devices are used for data collection. - phone = Smartphone(); + // Create a new study protocol. + protocol = StudyProtocol( + ownerId: 'alex@uni.dk', + name: 'Connectivity package test', + ); - protocol.addPrimaryDevice(phone); + // Define which devices are used for data collection. + phone = Smartphone(); - // adding all available measures to one one trigger and one task - protocol.addTaskControl( - ImmediateTrigger(), - BackgroundTask() - ..measures = SamplingPackageRegistry() - .dataTypes - .map((type) => Measure(type: type.type)) - .toList(), - phone, - ); + protocol.addPrimaryDevice(phone); - // also add a PeriodicSamplingConfiguration - protocol.addTaskControl( + // adding all available measures to one one trigger and one task + protocol.addTaskControl( + ImmediateTrigger(), + BackgroundTask() + ..measures = SamplingPackageRegistry().dataTypes.map((type) => Measure(type: type.type)).toList(), + phone, + ); + + // also add a PeriodicSamplingConfiguration + protocol.addTaskControl( + ImmediateTrigger(), + BackgroundTask( + measures: [ + Measure(type: ConnectivitySamplingPackage.BLUETOOTH) + ..overrideSamplingConfiguration = PeriodicSamplingConfiguration( + interval: const Duration(minutes: 10), + duration: const Duration(seconds: 10), + ), + ], + ), + phone); + + // also add a BluetoothScanPeriodicSamplingConfiguration + protocol.addTaskControl( + ImmediateTrigger(), + BackgroundTask(measures: [ + Measure( + type: ConnectivitySamplingPackage.BLUETOOTH, + samplingConfiguration: BluetoothScanPeriodicSamplingConfiguration( + interval: const Duration(minutes: 10), + duration: const Duration(seconds: 10), + withRemoteIds: ['123', '456'], + withServices: ['service1', 'service2'], + )) + ]), + phone); + + protocol.addTaskControl( ImmediateTrigger(), BackgroundTask( measures: [ - Measure(type: ConnectivitySamplingPackage.BLUETOOTH) - ..overrideSamplingConfiguration = PeriodicSamplingConfiguration( - interval: const Duration(minutes: 10), - duration: const Duration(seconds: 10), - ), - ], - ), - phone); - - // also add a BluetoothScanPeriodicSamplingConfiguration - protocol.addTaskControl( - ImmediateTrigger(), - BackgroundTask(measures: [ - Measure( - type: ConnectivitySamplingPackage.BLUETOOTH, - samplingConfiguration: BluetoothScanPeriodicSamplingConfiguration( - interval: const Duration(minutes: 10), - duration: const Duration(seconds: 10), - withRemoteIds: ['123', '456'], - withServices: ['service1', 'service2'], - )) - ]), - phone); - - protocol.addTaskControl( - ImmediateTrigger(), - BackgroundTask(measures: [ - Measure( + Measure( type: ConnectivitySamplingPackage.BEACON, samplingConfiguration: BeaconRangingPeriodicSamplingConfiguration( beaconDistance: 2, beaconRegions: [ BeaconRegion( - identifier: 'region1', - uuid: '12345678-1234-1234-1234-123456789012', - ), - BeaconRegion( - identifier: 'region2', - uuid: '12345678-1234-1234-1234-123456789012', + identifier: 'TestB1', + uuid: 'fda50693-a4e2-4fb1-afcf-c6eb07647825', ), ], - )) - ]), - phone); - }); + ), + ), + ], + ), + phone, + ); + }, + ); test('CAMSStudyProtocol -> JSON', () async { print(protocol); @@ -101,8 +101,7 @@ void main() { print('#1 : $protocol'); final studyJson = toJsonString(protocol); - StudyProtocol protocolFromJson = - StudyProtocol.fromJson(json.decode(studyJson) as Map); + StudyProtocol protocolFromJson = StudyProtocol.fromJson(json.decode(studyJson) as Map); expect(toJsonString(protocolFromJson), equals(studyJson)); print('#2 : $protocolFromJson'); }); @@ -111,8 +110,7 @@ void main() { // Read the study protocol from json file String plainJson = File('test/json/study_protocol.json').readAsStringSync(); - StudyProtocol protocol = - StudyProtocol.fromJson(json.decode(plainJson) as Map); + StudyProtocol protocol = StudyProtocol.fromJson(json.decode(plainJson) as Map); expect(protocol.ownerId, 'alex@uni.dk'); expect(protocol.primaryDevice.roleName, Smartphone.DEFAULT_ROLE_NAME); @@ -134,9 +132,23 @@ void main() { print(toJsonString(measurement)); }); + + test('Beacon -> JSON', () async { + BeaconData data = BeaconData(region: "TestB1")..addBeaconDevice( + BeaconDevice( + uuid: 'fda50693-a4e2-4fb1-afcf-c6eb07647825', + rssi: -60, + proximity: Proximity.near, + ), + ); + + final measurement = Measurement.fromData(data); + + print(toJsonString(measurement)); + }); + test('Connectivity -> JSON', () async { - Connectivity data = Connectivity() - ..connectivityStatus = [ConnectivityStatus.bluetooth]; + Connectivity data = Connectivity()..connectivityStatus = [ConnectivityStatus.bluetooth]; final measurement = Measurement.fromData(data);