mirror of https://github.com/AMT-Cheif/drift.git
58 lines
1.2 KiB
Dart
58 lines
1.2 KiB
Dart
import 'package:moor/moor.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'data/tables/todos.dart';
|
|
|
|
void main() {
|
|
test('data classes can be serialized', () {
|
|
final entry = TodoEntry(
|
|
id: 13,
|
|
title: 'Title',
|
|
content: 'Content',
|
|
targetDate: DateTime.now(),
|
|
);
|
|
|
|
final serialized = entry.toJsonString();
|
|
final deserialized = TodoEntry.fromJsonString(serialized);
|
|
|
|
expect(deserialized, equals(deserialized));
|
|
});
|
|
|
|
test('default serializer can be overridden globally', () {
|
|
final old = moorRuntimeOptions.defaultSerializer;
|
|
moorRuntimeOptions.defaultSerializer = _MySerializer();
|
|
|
|
final entry = TodoEntry(
|
|
id: 13,
|
|
title: 'Title',
|
|
content: 'Content',
|
|
category: 3,
|
|
targetDate: DateTime.now(),
|
|
);
|
|
expect(
|
|
entry.toJson(),
|
|
{
|
|
'id': 'foo',
|
|
'title': 'foo',
|
|
'content': 'foo',
|
|
'category': 'foo',
|
|
'target_date': 'foo',
|
|
},
|
|
);
|
|
|
|
moorRuntimeOptions.defaultSerializer = old;
|
|
});
|
|
}
|
|
|
|
class _MySerializer extends ValueSerializer {
|
|
@override
|
|
T fromJson<T>(dynamic json) {
|
|
throw StateError('Should not be called');
|
|
}
|
|
|
|
@override
|
|
dynamic toJson<T>(T value) {
|
|
return 'foo';
|
|
}
|
|
}
|