Index: test/declarer_test.dart |
diff --git a/test/declarer_test.dart b/test/declarer_test.dart |
deleted file mode 100644 |
index b145c2e6b58ac049565c9ffe7594431bb1308ecd..0000000000000000000000000000000000000000 |
--- a/test/declarer_test.dart |
+++ /dev/null |
@@ -1,326 +0,0 @@ |
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-import 'dart:async'; |
- |
-import 'package:unittest/src/backend/declarer.dart'; |
-import 'package:unittest/src/backend/suite.dart'; |
-import 'package:unittest/unittest.dart'; |
- |
-Declarer _declarer; |
-Suite _suite; |
- |
-void main() { |
- setUp(() { |
- _declarer = new Declarer(); |
- _suite = new Suite("suite", []); |
- }); |
- |
- group(".test()", () { |
- test("declares a test with a description and body", () { |
- var bodyRun = false; |
- _declarer.test("description", () { |
- bodyRun = true; |
- }); |
- |
- expect(_declarer.tests, hasLength(1)); |
- expect(_declarer.tests.single.name, equals("description")); |
- |
- return _runTest(0).then(expectAsync((_) { |
- expect(bodyRun, isTrue); |
- }, max: 1)); |
- }); |
- |
- test("declares multiple tests", () { |
- _declarer.test("description 1", () {}); |
- _declarer.test("description 2", () {}); |
- _declarer.test("description 3", () {}); |
- |
- expect(_declarer.tests, hasLength(3)); |
- expect(_declarer.tests[0].name, equals("description 1")); |
- expect(_declarer.tests[1].name, equals("description 2")); |
- expect(_declarer.tests[2].name, equals("description 3")); |
- }); |
- }); |
- |
- group(".setUp()", () { |
- test("is run before all tests", () { |
- var setUpRun = false; |
- _declarer.setUp(() => setUpRun = true); |
- |
- _declarer.test("description 1", expectAsync(() { |
- expect(setUpRun, isTrue); |
- setUpRun = false; |
- }, max: 1)); |
- |
- _declarer.test("description 2", expectAsync(() { |
- expect(setUpRun, isTrue); |
- setUpRun = false; |
- }, max: 1)); |
- |
- return _runTest(0).then((_) => _runTest(1)); |
- }); |
- |
- test("can return a Future", () { |
- var setUpRun = false; |
- _declarer.setUp(() { |
- return new Future(() => setUpRun = true); |
- }); |
- |
- _declarer.test("description", expectAsync(() { |
- expect(setUpRun, isTrue); |
- }, max: 1)); |
- |
- return _runTest(0); |
- }); |
- |
- test("can't be called multiple times", () { |
- _declarer.setUp(() {}); |
- expect(() => _declarer.setUp(() {}), throwsStateError); |
- }); |
- }); |
- |
- group(".tearDown()", () { |
- test("is run after all tests", () { |
- var tearDownRun; |
- _declarer.setUp(() => tearDownRun = false); |
- _declarer.tearDown(() => tearDownRun = true); |
- |
- _declarer.test("description 1", expectAsync(() { |
- expect(tearDownRun, isFalse); |
- }, max: 1)); |
- |
- _declarer.test("description 2", expectAsync(() { |
- expect(tearDownRun, isFalse); |
- }, max: 1)); |
- |
- return _runTest(0).then((_) { |
- expect(tearDownRun, isTrue); |
- return _runTest(1); |
- }).then((_) => expect(tearDownRun, isTrue)); |
- }); |
- |
- test("can return a Future", () { |
- var tearDownRun = false; |
- _declarer.tearDown(() { |
- return new Future(() => tearDownRun = true); |
- }); |
- |
- _declarer.test("description", expectAsync(() { |
- expect(tearDownRun, isFalse); |
- }, max: 1)); |
- |
- return _runTest(0).then((_) => expect(tearDownRun, isTrue)); |
- }); |
- |
- test("can't be called multiple times", () { |
- _declarer.tearDown(() {}); |
- expect(() => _declarer.tearDown(() {}), throwsStateError); |
- }); |
- }); |
- |
- group("in a group,", () { |
- test("tests inherit the group's description", () { |
- _declarer.group("group", () { |
- _declarer.test("description", () {}); |
- }); |
- |
- expect(_declarer.tests, hasLength(1)); |
- expect(_declarer.tests.single.name, "group description"); |
- }); |
- |
- group(".setUp()", () { |
- test("is scoped to the group", () { |
- var setUpRun = false; |
- _declarer.group("group", () { |
- _declarer.setUp(() => setUpRun = true); |
- |
- _declarer.test("description 1", expectAsync(() { |
- expect(setUpRun, isTrue); |
- setUpRun = false; |
- }, max: 1)); |
- }); |
- |
- _declarer.test("description 2", expectAsync(() { |
- expect(setUpRun, isFalse); |
- setUpRun = false; |
- }, max: 1)); |
- |
- return _runTest(0).then((_) => _runTest(1)); |
- }); |
- |
- test("runs from the outside in", () { |
- var outerSetUpRun = false; |
- var middleSetUpRun = false; |
- var innerSetUpRun = false; |
- _declarer.setUp(expectAsync(() { |
- expect(middleSetUpRun, isFalse); |
- expect(innerSetUpRun, isFalse); |
- outerSetUpRun = true; |
- }, max: 1)); |
- |
- _declarer.group("middle", () { |
- _declarer.setUp(expectAsync(() { |
- expect(outerSetUpRun, isTrue); |
- expect(innerSetUpRun, isFalse); |
- middleSetUpRun = true; |
- }, max: 1)); |
- |
- _declarer.group("inner", () { |
- _declarer.setUp(expectAsync(() { |
- expect(outerSetUpRun, isTrue); |
- expect(middleSetUpRun, isTrue); |
- innerSetUpRun = true; |
- }, max: 1)); |
- |
- _declarer.test("description", expectAsync(() { |
- expect(outerSetUpRun, isTrue); |
- expect(middleSetUpRun, isTrue); |
- expect(innerSetUpRun, isTrue); |
- }, max: 1)); |
- }); |
- }); |
- |
- return _runTest(0); |
- }); |
- |
- test("handles Futures when chained", () { |
- var outerSetUpRun = false; |
- var innerSetUpRun = false; |
- _declarer.setUp(expectAsync(() { |
- expect(innerSetUpRun, isFalse); |
- return new Future(() => outerSetUpRun = true); |
- }, max: 1)); |
- |
- _declarer.group("inner", () { |
- _declarer.setUp(expectAsync(() { |
- expect(outerSetUpRun, isTrue); |
- return new Future(() => innerSetUpRun = true); |
- }, max: 1)); |
- |
- _declarer.test("description", expectAsync(() { |
- expect(outerSetUpRun, isTrue); |
- expect(innerSetUpRun, isTrue); |
- }, max: 1)); |
- }); |
- |
- return _runTest(0); |
- }); |
- |
- test("can't be called multiple times", () { |
- _declarer.group("group", () { |
- _declarer.setUp(() {}); |
- expect(() => _declarer.setUp(() {}), throwsStateError); |
- }); |
- }); |
- }); |
- |
- group(".tearDown()", () { |
- test("is scoped to the group", () { |
- var tearDownRun; |
- _declarer.setUp(() => tearDownRun = false); |
- |
- _declarer.group("group", () { |
- _declarer.tearDown(() => tearDownRun = true); |
- |
- _declarer.test("description 1", expectAsync(() { |
- expect(tearDownRun, isFalse); |
- }, max: 1)); |
- }); |
- |
- _declarer.test("description 2", expectAsync(() { |
- expect(tearDownRun, isFalse); |
- }, max: 1)); |
- |
- return _runTest(0).then((_) { |
- expect(tearDownRun, isTrue); |
- return _runTest(1); |
- }).then((_) => expect(tearDownRun, isFalse)); |
- }); |
- |
- test("runs from the inside out", () { |
- var innerTearDownRun = false; |
- var middleTearDownRun = false; |
- var outerTearDownRun = false; |
- _declarer.tearDown(expectAsync(() { |
- expect(innerTearDownRun, isTrue); |
- expect(middleTearDownRun, isTrue); |
- outerTearDownRun = true; |
- }, max: 1)); |
- |
- _declarer.group("middle", () { |
- _declarer.tearDown(expectAsync(() { |
- expect(innerTearDownRun, isTrue); |
- expect(outerTearDownRun, isFalse); |
- middleTearDownRun = true; |
- }, max: 1)); |
- |
- _declarer.group("inner", () { |
- _declarer.tearDown(expectAsync(() { |
- expect(outerTearDownRun, isFalse); |
- expect(middleTearDownRun, isFalse); |
- innerTearDownRun = true; |
- }, max: 1)); |
- |
- _declarer.test("description", expectAsync(() { |
- expect(outerTearDownRun, isFalse); |
- expect(middleTearDownRun, isFalse); |
- expect(innerTearDownRun, isFalse); |
- }, max: 1)); |
- }); |
- }); |
- |
- return _runTest(0).then((_) { |
- expect(innerTearDownRun, isTrue); |
- expect(middleTearDownRun, isTrue); |
- expect(outerTearDownRun, isTrue); |
- }); |
- }); |
- |
- test("handles Futures when chained", () { |
- var outerTearDownRun = false; |
- var innerTearDownRun = false; |
- _declarer.tearDown(expectAsync(() { |
- expect(innerTearDownRun, isTrue); |
- return new Future(() => outerTearDownRun = true); |
- }, max: 1)); |
- |
- _declarer.group("inner", () { |
- _declarer.tearDown(expectAsync(() { |
- expect(outerTearDownRun, isFalse); |
- return new Future(() => innerTearDownRun = true); |
- }, max: 1)); |
- |
- _declarer.test("description", expectAsync(() { |
- expect(outerTearDownRun, isFalse); |
- expect(innerTearDownRun, isFalse); |
- }, max: 1)); |
- }); |
- |
- return _runTest(0).then((_) { |
- expect(innerTearDownRun, isTrue); |
- expect(outerTearDownRun, isTrue); |
- }); |
- }); |
- |
- test("can't be called multiple times", () { |
- _declarer.group("group", () { |
- _declarer.tearDown(() {}); |
- expect(() => _declarer.tearDown(() {}), throwsStateError); |
- }); |
- }); |
- }); |
- }); |
-} |
- |
-/// Runs the test at [index] defined on [_declarer]. |
-/// |
-/// This automatically sets up an `onError` listener to ensure that the test |
-/// doesn't throw any invisible exceptions. |
-Future _runTest(int index) { |
- var liveTest = _declarer.tests[index].load(_suite); |
- liveTest.onError.listen(expectAsync((_) {}, |
- count: 0, reason: "No errors expected for test #$index.")); |
- return liveTest.run(); |
-} |