import 'package:sally/sally.dart'; import 'package:sqlite2/sqlite.dart'; class MemoryDatabase extends QueryExecutor { Database _db; @override Future ensureOpen() { _db ??= Database.inMemory(); return Future.value(true); } @override Future runCustom(String statement) { return _db.execute(statement); } @override Future runDelete(String statement, List args) { return _db.execute(statement, params: args.map((x) => x.toString()).toList()); } @override Future runInsert(String statement, List args) { return runDelete(statement, args); } @override Future>> runSelect(String statement, List args) { return _db .query(statement, params: args.map((x) => x.toString()).toList()) .fold([], (list, row) { return list..add(row.toMap()); }); } @override Future runUpdate(String statement, List args) { return runDelete(statement, args); } }