@@ -3,70 +3,61 @@ import 'package:sqlite3/sqlite3.dart';
33import 'package:drift/src/sqlite3/database_tracker.dart' ;
44
55void main () {
6- group ('DatabaseTracker' , () {
7- late DatabaseTracker tracker;
6+ late DatabaseTracker tracker;
87
9- setUp (() {
10- // Create a fresh DatabaseTracker instance before each test.
11- tracker = DatabaseTracker ();
12- });
13-
14- tearDown (() {
15- // Clean up resources by disposing of the tracker.
16- // Multiple dispose calls should be safe.
17- tracker.dispose ();
18- });
19-
20- test ('tracks and closes existing database connections' , () {
21- // Open two in-memory SQLite databases.
22- final db1 = sqlite3.openInMemory ();
23- final db2 = sqlite3.openInMemory ();
24-
25- // Register each database with the tracker.
26- tracker.markOpened ('db1_path' , db1);
27- tracker.markOpened ('db2_path' , db2);
28-
29- // Optionally perform some queries to confirm the databases are working.
30- db1.execute ('CREATE TABLE test1 (id INTEGER NOT NULL PRIMARY KEY)' );
31- db2.execute ('CREATE TABLE test2 (id INTEGER NOT NULL PRIMARY KEY)' );
8+ setUp (() {
9+ tracker = DatabaseTracker ();
10+ });
3211
33- // Use the tracker to close all tracked connections.
34- tracker.closeExisting ();
12+ tearDown (() {
13+ tracker.dispose ();
14+ });
3515
36- // After closing, further queries should throw an error.
37- expect (
38- () => db1.execute ('INSERT INTO test1 (id) VALUES (1)' ),
39- throwsA (anything),
40- );
41- expect (
42- () => db2.execute ('INSERT INTO test2 (id) VALUES (2)' ),
43- throwsA (anything),
44- );
45- });
16+ test ('tracks and closes existing database connections' , () {
17+ // Open two in-memory SQLite databases.
18+ final db1 = sqlite3.openInMemory ();
19+ final db2 = sqlite3.openInMemory ();
20+
21+ // Register each database with the tracker.
22+ tracker.markOpened ('db1_path' , db1);
23+ tracker.markOpened ('db2_path' , db2);
24+
25+ // Use the tracker to close all tracked connections.
26+ tracker.closeExisting ();
27+
28+ // After closing, further queries should throw an error.
29+ expect (
30+ () => db1.execute ('INSERT INTO test1 (id) VALUES (1)' ),
31+ throwsA (anything),
32+ );
33+ expect (
34+ () => db2.execute ('INSERT INTO test2 (id) VALUES (2)' ),
35+ throwsA (anything),
36+ );
37+ });
4638
47- test ('throws StateError after disposal' , () {
48- // Dispose immediately
49- tracker.dispose ();
39+ test ('throws StateError after disposal' , () {
40+ // Dispose immediately
41+ tracker.dispose ();
5042
51- // Any usage of the tracker after dispose should throw a StateError.
52- expect (
53- () => tracker.markOpened ('test' , sqlite3.openInMemory ()),
54- throwsStateError,
55- );
56- expect (() => tracker.closeExisting (), throwsStateError);
57- });
43+ // Any usage of the tracker after dispose should throw a StateError.
44+ expect (
45+ () => tracker.markOpened ('test' , sqlite3.openInMemory ()),
46+ throwsStateError,
47+ );
48+ expect (() => tracker.closeExisting (), throwsStateError);
49+ });
5850
59- test ('multiple calls to dispose are safe' , () {
60- // Dispose can be called multiple times without throwing errors.
61- expect (() => tracker.dispose (), returnsNormally);
62- expect (() => tracker.dispose (), returnsNormally);
63- });
51+ test ('multiple calls to dispose are safe' , () {
52+ // Dispose can be called multiple times without throwing errors.
53+ expect (() => tracker.dispose (), returnsNormally);
54+ expect (() => tracker.dispose (), returnsNormally);
55+ });
6456
65- test ('isDisposed reflects tracker state' , () {
66- expect (tracker.isDisposed, isFalse);
57+ test ('isDisposed reflects tracker state' , () {
58+ expect (tracker.isDisposed, isFalse);
6759
68- tracker.dispose ();
69- expect (tracker.isDisposed, isTrue);
70- });
60+ tracker.dispose ();
61+ expect (tracker.isDisposed, isTrue);
7162 });
7263}
0 commit comments