99 lines
2.9 KiB
Dart
99 lines
2.9 KiB
Dart
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'package:matrix/src/database/sqflite_box.dart';
|
|
|
|
void main() {
|
|
group('Box tests', () {
|
|
late BoxCollection collection;
|
|
const Set<String> boxNames = {'cats', 'dogs'};
|
|
const data = {'name': 'Fluffy', 'age': 2};
|
|
const data2 = {'name': 'Loki', 'age': 4};
|
|
late Database db;
|
|
setUp(() async {
|
|
db = await databaseFactoryFfi.openDatabase(':memory:');
|
|
collection = await BoxCollection.open(
|
|
'testbox',
|
|
boxNames,
|
|
sqfliteDatabase: db,
|
|
sqfliteFactory: databaseFactoryFfi,
|
|
);
|
|
});
|
|
|
|
test('Box.put and Box.get', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
expect(await box.get('fluffy'), data);
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.getAll', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
expect(await box.getAll(['fluffy', 'loki']), [data, data2]);
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.getAllKeys', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
expect(await box.getAllKeys(), ['fluffy', 'loki']);
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.getAllValues', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
expect(await box.getAllValues(), {'fluffy': data, 'loki': data2});
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.delete', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
await box.delete('fluffy');
|
|
expect(await box.get('fluffy'), null);
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.delete in transaction', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
await collection.transaction(() async {
|
|
await box.delete('fluffy');
|
|
expect(await box.get('fluffy'), null);
|
|
});
|
|
expect(await box.get('fluffy'), null);
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.deleteAll', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
await box.deleteAll(['fluffy', 'loki']);
|
|
expect(await box.get('fluffy'), null);
|
|
expect(await box.get('loki'), null);
|
|
await box.clear();
|
|
});
|
|
|
|
test('Box.clear', () async {
|
|
final box = collection.openBox<Map>('cats');
|
|
await box.put('fluffy', data);
|
|
await box.put('loki', data2);
|
|
await box.clear();
|
|
expect(await box.get('fluffy'), null);
|
|
expect(await box.get('loki'), null);
|
|
});
|
|
|
|
test('Box.delete', () async {
|
|
await BoxCollection.delete(db.path, databaseFactoryFfi);
|
|
});
|
|
});
|
|
}
|