import 'package:flutter_test/flutter_test.dart'; import 'package:melo_app/models/song.dart'; void main() { group('Song Model', () { test('toMap / fromMap roundtrip', () { final song = Song( id: 1, titel: 'Test Song', kuenstler: 'Test Artist', album: 'Test Album', dauerSekunden: 180, dateiPfad: '/music/test.mp3', groesseBytes: 5242880, istHeruntergeladen: true, downloadQuelle: 'local', ); final map = song.toMap(); final restored = Song.fromMap(map); expect(restored.titel, song.titel); expect(restored.kuenstler, song.kuenstler); expect(restored.album, song.album); expect(restored.dauerSekunden, song.dauerSekunden); expect(restored.dateiPfad, song.dateiPfad); expect(restored.groesseBytes, song.groesseBytes); expect(restored.istHeruntergeladen, song.istHeruntergeladen); expect(restored.istKorrupt, false); // default }); test('istKorrupt roundtrip', () { final song = Song( titel: 'Defekt', kuenstler: 'X', dauerSekunden: 0, dateiPfad: '/x.mp3', istKorrupt: true, ); final restored = Song.fromMap(song.toMap()); expect(restored.istKorrupt, true); }); test('dauerFormatiert formats correctly', () { final song = Song( titel: 'Test', kuenstler: 'T', dauerSekunden: 125, dateiPfad: '', ); expect(song.dauerFormatiert, '2:05'); final short = Song( titel: 'Test', kuenstler: 'T', dauerSekunden: 7, dateiPfad: '', ); expect(short.dauerFormatiert, '0:07'); }); }); }