Merge branch 'krille/sembast' into 'main'

feat: Implement sembast store

Closes #239

See merge request famedly/company/frontend/famedlysdk!892
This commit is contained in:
Krille Fear 2021-11-16 09:42:40 +00:00
commit 0532974022
5 changed files with 1542 additions and 0 deletions

View File

@ -24,6 +24,7 @@ export 'package:matrix_api_lite/matrix_api_lite.dart';
export 'src/client.dart'; export 'src/client.dart';
export 'src/database/database_api.dart'; export 'src/database/database_api.dart';
export 'src/database/hive_database.dart'; export 'src/database/hive_database.dart';
export 'src/database/sembast_database.dart';
export 'src/event.dart'; export 'src/event.dart';
export 'src/event_status.dart'; export 'src/event_status.dart';
export 'src/room.dart'; export 'src/room.dart';

File diff suppressed because it is too large Load Diff

View File

@ -23,6 +23,7 @@ dependencies:
slugify: ^2.0.0 slugify: ^2.0.0
html: ^0.15.0 html: ^0.15.0
collection: ^1.15.0 collection: ^1.15.0
sembast: ^3.1.1
dev_dependencies: dev_dependencies:
dart_code_metrics: ^4.4.0 dart_code_metrics: ^4.4.0

View File

@ -27,6 +27,11 @@ import 'fake_database.dart';
void main() { void main() {
/// All Tests related to the ChatTime /// All Tests related to the ChatTime
group('Sembast Database Test', () {
testDatabase(
getSembastDatabase(null),
);
});
group('Hive Database Test', () { group('Hive Database Test', () {
testDatabase( testDatabase(
getHiveDatabase(null), getHiveDatabase(null),

View File

@ -23,11 +23,18 @@ import 'package:matrix/matrix.dart';
import 'package:matrix/src/database/hive_database.dart'; import 'package:matrix/src/database/hive_database.dart';
import 'package:file/memory.dart'; import 'package:file/memory.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:matrix/src/database/sembast_database.dart';
Future<DatabaseApi> getDatabase(Client? _) => getHiveDatabase(_); Future<DatabaseApi> getDatabase(Client? _) => getHiveDatabase(_);
bool hiveInitialized = false; bool hiveInitialized = false;
Future<MatrixSembastDatabase> getSembastDatabase(Client? c) async {
final db = MatrixSembastDatabase('unit_test.${c?.hashCode}');
await db.open();
return db;
}
Future<FamedlySdkHiveDatabase> getHiveDatabase(Client? c) async { Future<FamedlySdkHiveDatabase> getHiveDatabase(Client? c) async {
if (!hiveInitialized) { if (!hiveInitialized) {
final fileSystem = MemoryFileSystem(); final fileSystem = MemoryFileSystem();