Index: packages/pool/test/pool_test.dart |
diff --git a/packages/pool/test/pool_test.dart b/packages/pool/test/pool_test.dart |
index 65fd00ee25f0ed9a498681d61077198f2d67283f..7fba9c0b06812470bc85befc890498a16f1e38d4 100644 |
--- a/packages/pool/test/pool_test.dart |
+++ b/packages/pool/test/pool_test.dart |
@@ -96,6 +96,13 @@ void main() { |
async.elapse(new Duration(seconds: 1)); |
}); |
}); |
+ |
+ // Regression test for #3. |
+ test("can be called immediately before close()", () async { |
+ var pool = new Pool(1); |
+ pool.withResource(expectAsync(() {})); |
+ await pool.close(); |
+ }); |
}); |
group("with a timeout", () { |
@@ -272,6 +279,16 @@ void main() { |
}); |
}); |
+ test("done doesn't complete without close", () async { |
+ var pool = new Pool(1); |
+ pool.done.then(expectAsync1((_) {}, count: 0)); |
+ |
+ var resource = await pool.request(); |
+ resource.release(); |
+ |
+ await new Future.delayed(Duration.ZERO); |
+ }); |
+ |
group("close()", () { |
test("disallows request() and withResource()", () { |
var pool = new Pool(1)..close(); |
@@ -285,6 +302,7 @@ void main() { |
expect(pool.request().then((resource2) { |
resource2.release(); |
}), completes); |
+ expect(pool.done, completes); |
expect(pool.close(), completes); |
resource1.release(); |
}); |
@@ -398,6 +416,7 @@ void main() { |
var completer = new Completer(); |
resource.allowRelease(() => completer.future); |
+ expect(pool.done, throwsA("oh no!")); |
expect(pool.close(), throwsA("oh no!")); |
await new Future.delayed(Duration.ZERO); |