Commit e574046

derdilla <derdilla06@gmail.com>
2023-06-03 05:34:44
add tests for RamBloodPressureModel
1 parent bd57794
Changed files (1)
test/model/bood_pressure_test.dart
@@ -2,6 +2,8 @@ import 'package:blood_pressure_app/model/blood_pressure.dart';
 import 'package:flutter_test/flutter_test.dart';
 import 'package:sqflite_common_ffi/sqflite_ffi.dart';
 
+import '../ram_only_implementations.dart';
+
 void main() {
   group('BloodPressureRecord', () {
     test('should initialize with all values supported by dart', () {
@@ -74,7 +76,7 @@ void main() {
       await m.add(r);
 
       var m2 = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_store_between_sessions');
-      var res = (await m.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(0), DateTime.now())).first;
+      var res = (await m2.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(0), DateTime.now())).first;
 
       expect(res.creationTime, r.creationTime);
       expect(res.systolic, r.systolic);
@@ -107,4 +109,48 @@ void main() {
 
     });
   });
+
+  group("RamBloodPressureModel should behave like BloodPressureModel", () {
+    test('should initialize', () async {
+      expect(() async => RamBloodPressureModel(), returnsNormally);
+    });
+
+    test('should start empty', () async {
+      var m = RamBloodPressureModel();
+      expect((await m.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(0), DateTime.now())).length, 0);
+    });
+
+    test('should notify when adding entries', () async {
+      var m = RamBloodPressureModel();
+
+      int listenerCalls = 0;
+      m.addListener(() {
+        listenerCalls++;
+      });
+
+      await m.add(BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(0), 0, 0, 0, ''));
+      await m.add(BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(1), 0, 0, 0, ''));
+      await m.add(BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(2), 0, 0, 0, ''));
+
+      expect(listenerCalls, 3);
+    });
+
+    test('should return entries as added', () async {
+      var m = RamBloodPressureModel();
+
+      var r = BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(31415926), -172, 10000, 0, "((V⍳V)=⍳⍴V)/V←,V    ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈๏ แผ่นดินฮั่นเABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвг, \n \t д∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა");
+      m.addListener(() async {
+        var res = (await m.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(0), DateTime.now())).first;
+        expect(res, isNotNull);
+        expect(res.creationTime, r.creationTime);
+        expect(res.systolic, r.systolic);
+        expect(res.diastolic, r.diastolic);
+        expect(res.pulse, r.pulse);
+        expect(res.notes, r.notes);
+        return;
+      });
+
+      m.add(r);
+    });
+  });
 }
\ No newline at end of file