121 lines
4.0 KiB
Dart
121 lines
4.0 KiB
Dart
import 'package:drift/native.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:dmc_app/services/database/app_database.dart';
|
|
import 'package:dmc_app/services/database/app_settings_repository.dart';
|
|
import 'package:dmc_app/transport/connection_type.dart';
|
|
|
|
void main() {
|
|
late AppDatabase db;
|
|
late AppSettingsRepository repository;
|
|
|
|
setUp(() {
|
|
db = AppDatabase.forTesting(NativeDatabase.memory());
|
|
repository = AppSettingsRepository(db);
|
|
});
|
|
|
|
tearDown(() => db.close());
|
|
|
|
test('load ohne vorherige Werte liefert beides null', () async {
|
|
final settings = await repository.load();
|
|
expect(settings.activeDroneProfileId, isNull);
|
|
expect(settings.currentMissionId, isNull);
|
|
});
|
|
|
|
test('setActiveDroneProfileId und setCurrentMissionId sind unabhaengig voneinander',
|
|
() async {
|
|
await repository.setActiveDroneProfileId(3);
|
|
await repository.setCurrentMissionId(7);
|
|
|
|
final settings = await repository.load();
|
|
expect(settings.activeDroneProfileId, 3);
|
|
expect(settings.currentMissionId, 7);
|
|
});
|
|
|
|
test('erneutes Setzen eines Werts laesst den anderen unangetastet', () async {
|
|
await repository.setActiveDroneProfileId(1);
|
|
await repository.setCurrentMissionId(2);
|
|
|
|
await repository.setCurrentMissionId(9);
|
|
|
|
final settings = await repository.load();
|
|
expect(settings.activeDroneProfileId, 1);
|
|
expect(settings.currentMissionId, 9);
|
|
});
|
|
|
|
test('Wert kann auf null zurueckgesetzt werden', () async {
|
|
await repository.setCurrentMissionId(5);
|
|
await repository.setCurrentMissionId(null);
|
|
|
|
final settings = await repository.load();
|
|
expect(settings.currentMissionId, isNull);
|
|
});
|
|
|
|
test('Verbindungseinstellungen: Standard ist kein Geraet, Autoconnect an',
|
|
() async {
|
|
final settings = await repository.load();
|
|
expect(settings.connectionDeviceAddress, isNull);
|
|
expect(settings.connectionAutoConnect, isTrue);
|
|
});
|
|
|
|
test('setConnectionDeviceAddress merkt sich die MAC-Adresse', () async {
|
|
await repository.setConnectionDeviceAddress('AA:BB:CC:DD:EE:FF');
|
|
|
|
expect(
|
|
await repository.loadConnectionDeviceAddress(),
|
|
'AA:BB:CC:DD:EE:FF',
|
|
);
|
|
});
|
|
|
|
test('setConnectionAutoConnect(false) bleibt unabhaengig von der MAC-Adresse',
|
|
() async {
|
|
await repository.setConnectionDeviceAddress('AA:BB:CC:DD:EE:FF');
|
|
await repository.setConnectionAutoConnect(false);
|
|
|
|
final settings = await repository.load();
|
|
expect(settings.connectionDeviceAddress, 'AA:BB:CC:DD:EE:FF');
|
|
expect(settings.connectionAutoConnect, isFalse);
|
|
});
|
|
|
|
test('Verbindungsart: Standard ist WiFi, Port-Vorgabe 14550', () async {
|
|
final settings = await repository.load();
|
|
expect(settings.connectionType, ConnectionType.wifi);
|
|
expect(settings.connectionWifiHost, isNull);
|
|
expect(settings.connectionWifiPort, 14550);
|
|
});
|
|
|
|
test('setConnectionType merkt sich die gewaehlte Verbindungsart', () async {
|
|
await repository.setConnectionType(ConnectionType.wifi);
|
|
|
|
final settings = await repository.load();
|
|
expect(settings.connectionType, ConnectionType.wifi);
|
|
});
|
|
|
|
test('setConnectionWifiHost/-Port merken sich Host und Port unabhaengig',
|
|
() async {
|
|
await repository.setConnectionWifiHost('192.168.4.1');
|
|
await repository.setConnectionWifiPort(15000);
|
|
|
|
expect(await repository.loadConnectionWifiHost(), '192.168.4.1');
|
|
expect(await repository.loadConnectionWifiPort(), 15000);
|
|
});
|
|
|
|
test('setConnectionWifiHost(null) loescht die Vorgabe wieder', () async {
|
|
await repository.setConnectionWifiHost('192.168.4.1');
|
|
await repository.setConnectionWifiHost(null);
|
|
|
|
expect(await repository.loadConnectionWifiHost(), isNull);
|
|
});
|
|
|
|
test('SSID-Praefix: Standard ist "mLRS-"', () async {
|
|
final settings = await repository.load();
|
|
expect(settings.connectionWifiSsidPrefix, 'mLRS-');
|
|
});
|
|
|
|
test('setConnectionWifiSsidPrefix merkt sich den Praefix', () async {
|
|
await repository.setConnectionWifiSsidPrefix('mLRS-1234');
|
|
|
|
expect(await repository.loadConnectionWifiSsidPrefix(), 'mLRS-1234');
|
|
});
|
|
}
|