54 lines
1.6 KiB
Dart
54 lines
1.6 KiB
Dart
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');
|
|
});
|
|
});
|
|
}
|