mirror of https://github.com/AMT-Cheif/drift.git
38 lines
1.1 KiB
Dart
38 lines
1.1 KiB
Dart
import 'package:moor/ffi.dart';
|
|
import 'package:moor/moor.dart';
|
|
import 'package:sqlite3/sqlite3.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
group('VmDatabase.opened', () {
|
|
test('disposes the underlying database by default', () async {
|
|
final underlying = sqlite3.openInMemory();
|
|
final db = VmDatabase.opened(underlying);
|
|
await db.ensureOpen(_FakeExecutorUser());
|
|
await db.close();
|
|
|
|
expect(() => underlying.execute('SELECT 1'), throwsStateError);
|
|
});
|
|
|
|
test('can avoid disposing the underlying instance', () async {
|
|
final underlying = sqlite3.openInMemory();
|
|
final db = VmDatabase.opened(underlying, closeUnderlyingOnClose: false);
|
|
await db.ensureOpen(_FakeExecutorUser());
|
|
await db.close();
|
|
|
|
expect(() => underlying.execute('SELECT 1'), isNot(throwsA(anything)));
|
|
underlying.dispose();
|
|
});
|
|
});
|
|
}
|
|
|
|
class _FakeExecutorUser extends QueryExecutorUser {
|
|
@override
|
|
Future<void> beforeOpen(QueryExecutor executor, OpeningDetails details) {
|
|
return Future.value();
|
|
}
|
|
|
|
@override
|
|
int get schemaVersion => 1;
|
|
}
|