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