asunit4 4.2.1.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. data/Gemfile +5 -0
  2. data/MIT-LICENSE.txt +22 -0
  3. data/README.textile +6 -0
  4. data/air/AIR2Runner.mxml +22 -0
  5. data/air/AIR2RunnerDescriptor.xml +38 -0
  6. data/asunit4.gemspec +20 -0
  7. data/asunit4.rb +16 -0
  8. data/bin/AsUnit-4.1.pre.swc +0 -0
  9. data/bin/AsUnitRunner.swf +0 -0
  10. data/build.xml +46 -0
  11. data/lib/Reflection.swc +0 -0
  12. data/rakefile.rb +169 -0
  13. data/script/generate +21 -0
  14. data/src/asunit/asserts/assertEquals.as +5 -0
  15. data/src/asunit/asserts/assertEqualsArrays.as +5 -0
  16. data/src/asunit/asserts/assertEqualsArraysIgnoringOrder.as +5 -0
  17. data/src/asunit/asserts/assertEqualsFloat.as +5 -0
  18. data/src/asunit/asserts/assertFalse.as +5 -0
  19. data/src/asunit/asserts/assertNotNull.as +5 -0
  20. data/src/asunit/asserts/assertNotSame.as +5 -0
  21. data/src/asunit/asserts/assertNull.as +5 -0
  22. data/src/asunit/asserts/assertSame.as +5 -0
  23. data/src/asunit/asserts/assertThrows.as +5 -0
  24. data/src/asunit/asserts/assertTrue.as +5 -0
  25. data/src/asunit/asserts/fail.as +5 -0
  26. data/src/asunit/core/AsUnitCore.as +177 -0
  27. data/src/asunit/core/FlashBuilderCore.as +22 -0
  28. data/src/asunit/core/FlashDevelopCore.as +21 -0
  29. data/src/asunit/core/TextCore.as +54 -0
  30. data/src/asunit/errors/AbstractError.as +10 -0
  31. data/src/asunit/errors/AssertionFailedError.as +10 -0
  32. data/src/asunit/errors/ClassNotFoundError.as +11 -0
  33. data/src/asunit/errors/InstanceNotFoundError.as +10 -0
  34. data/src/asunit/errors/UnimplementedFeatureError.as +10 -0
  35. data/src/asunit/errors/UsageError.as +11 -0
  36. data/src/asunit/events/TimeoutCommandEvent.as +27 -0
  37. data/src/asunit/framework/Assert.as +408 -0
  38. data/src/asunit/framework/Async.as +138 -0
  39. data/src/asunit/framework/CallbackBridge.as +175 -0
  40. data/src/asunit/framework/Command.as +6 -0
  41. data/src/asunit/framework/ErrorEvent.as +20 -0
  42. data/src/asunit/framework/IAsync.as +21 -0
  43. data/src/asunit/framework/IResult.as +36 -0
  44. data/src/asunit/framework/IRunListener.as +11 -0
  45. data/src/asunit/framework/IRunner.as +15 -0
  46. data/src/asunit/framework/IRunnerFactory.as +9 -0
  47. data/src/asunit/framework/ITestFailure.as +32 -0
  48. data/src/asunit/framework/ITestListener.as +15 -0
  49. data/src/asunit/framework/ITestResult.as +21 -0
  50. data/src/asunit/framework/ITestSuccess.as +22 -0
  51. data/src/asunit/framework/ITestWarning.as +14 -0
  52. data/src/asunit/framework/InjectionDelegate.as +96 -0
  53. data/src/asunit/framework/LegacyTestIterator.as +40 -0
  54. data/src/asunit/framework/MessageBridge.as +24 -0
  55. data/src/asunit/framework/Method.as +80 -0
  56. data/src/asunit/framework/Result.as +181 -0
  57. data/src/asunit/framework/RunnerFactory.as +179 -0
  58. data/src/asunit/framework/SuiteIterator.as +71 -0
  59. data/src/asunit/framework/TestCase.as +106 -0
  60. data/src/asunit/framework/TestFailure.as +65 -0
  61. data/src/asunit/framework/TestIterator.as +282 -0
  62. data/src/asunit/framework/TestObserver.as +12 -0
  63. data/src/asunit/framework/TestSuccess.as +38 -0
  64. data/src/asunit/framework/TestWarning.as +40 -0
  65. data/src/asunit/framework/TimeoutCommand.as +103 -0
  66. data/src/asunit/printers/FlashBuilderPrinter.as +134 -0
  67. data/src/asunit/printers/FlashDevelopPrinter.as +81 -0
  68. data/src/asunit/printers/TextPrinter.as +324 -0
  69. data/src/asunit/runners/LegacyRunner.as +13 -0
  70. data/src/asunit/runners/SuiteRunner.as +125 -0
  71. data/src/asunit/runners/TestRunner.as +403 -0
  72. data/src/asunit/util/ArrayIterator.as +30 -0
  73. data/src/asunit/util/Iterator.as +10 -0
  74. data/test/AllTests.as +73 -0
  75. data/test/AsUnitRunner.as +15 -0
  76. data/test/Flex3Runner.mxml +24 -0
  77. data/test/Flex4Runner.mxml +27 -0
  78. data/test/asunit/core/AsUnitCoreTest.as +97 -0
  79. data/test/asunit/framework/AssertEqualsArraysIgnoringOrderTest.as +88 -0
  80. data/test/asunit/framework/AssertEqualsArraysTest.as +102 -0
  81. data/test/asunit/framework/AssertTest.as +184 -0
  82. data/test/asunit/framework/AssertThrowsTest.as +42 -0
  83. data/test/asunit/framework/AsyncMethodTest.as +69 -0
  84. data/test/asunit/framework/AsyncTest.as +104 -0
  85. data/test/asunit/framework/CallbackBridgeTest.as +73 -0
  86. data/test/asunit/framework/InjectionDelegateTest.as +79 -0
  87. data/test/asunit/framework/MockData.xml +8 -0
  88. data/test/asunit/framework/NestedSuiteIteratorTest.as +59 -0
  89. data/test/asunit/framework/ProceedOnEventTest.as +109 -0
  90. data/test/asunit/framework/ResultTest.as +92 -0
  91. data/test/asunit/framework/RunnerFactoryTest.as +54 -0
  92. data/test/asunit/framework/SuiteIteratorTest.as +67 -0
  93. data/test/asunit/framework/TestCaseMock.as +24 -0
  94. data/test/asunit/framework/TestIteratorIgnoredMethodTest.as +62 -0
  95. data/test/asunit/framework/TestIteratorMethodByNameTest.as +50 -0
  96. data/test/asunit/framework/TestIteratorMultiMethodTest.as +186 -0
  97. data/test/asunit/framework/TestIteratorOrderedTestMethodTest.as +57 -0
  98. data/test/asunit/framework/TestIteratorSingleMethodTest.as +56 -0
  99. data/test/asunit/framework/VisualTestCaseTest.as +43 -0
  100. data/test/asunit/framework/assertAssertionFailed.as +19 -0
  101. data/test/asunit/printers/TextPrinterTest.as +122 -0
  102. data/test/asunit/runners/LegacyRunnerTest.as +40 -0
  103. data/test/asunit/runners/SuiteRunnerTest.as +40 -0
  104. data/test/asunit/runners/TestRunnerAsyncMethodTest.as +107 -0
  105. data/test/asunit/runners/TestRunnerErrorMethodTest.as +56 -0
  106. data/test/asunit/runners/TestRunnerExpectsErrorTest.as +98 -0
  107. data/test/asunit/runners/TestRunnerIgnoredMethodTest.as +42 -0
  108. data/test/asunit/runners/TestRunnerTest.as +171 -0
  109. data/test/asunit/support/AnnotatedSubClass.as +18 -0
  110. data/test/asunit/support/AnnotatedSuperClass.as +15 -0
  111. data/test/asunit/support/CustomParameters.as +13 -0
  112. data/test/asunit/support/CustomTestRunner.as +22 -0
  113. data/test/asunit/support/DoubleFailSuite.as +8 -0
  114. data/test/asunit/support/DoubleNestedSuite.as +14 -0
  115. data/test/asunit/support/ErrorInMethod.as +11 -0
  116. data/test/asunit/support/FailAssertEquals.as +29 -0
  117. data/test/asunit/support/FailAssertTrue.as +28 -0
  118. data/test/asunit/support/FakeObserver.as +42 -0
  119. data/test/asunit/support/FakeRunner.as +32 -0
  120. data/test/asunit/support/IgnoredMethod.as +26 -0
  121. data/test/asunit/support/InjectTimeoutOnAsync.as +14 -0
  122. data/test/asunit/support/InjectionFailure.as +18 -0
  123. data/test/asunit/support/InjectionVerification.as +69 -0
  124. data/test/asunit/support/LegacyTestCase.as +38 -0
  125. data/test/asunit/support/MultiMethod.as +77 -0
  126. data/test/asunit/support/OrderedTestMethod.as +36 -0
  127. data/test/asunit/support/RunWithButNoType.as +14 -0
  128. data/test/asunit/support/RunWithSuiteButNoType.as +11 -0
  129. data/test/asunit/support/SingleErrorSuite.as +7 -0
  130. data/test/asunit/support/SingleSuccessSuite.as +7 -0
  131. data/test/asunit/support/SucceedAssertTrue.as +31 -0
  132. data/test/asunit/support/SuiteOfTwoSuites.as +8 -0
  133. data/test/asunit/support/SuiteWithCustomRunner.as +12 -0
  134. data/test/asunit/support/SuiteWithOneCustomChildSuite.as +10 -0
  135. data/test/asunit/support/TestForFakeRunner.as +14 -0
  136. data/test/asunit/util/ArrayIteratorTest.as +65 -0
  137. data/vendor/as3reflection/README +7 -0
  138. data/vendor/as3reflection/p2/reflect/Reflection.as +417 -0
  139. data/vendor/as3reflection/p2/reflect/ReflectionAccessor.as +14 -0
  140. data/vendor/as3reflection/p2/reflect/ReflectionBase.as +52 -0
  141. data/vendor/as3reflection/p2/reflect/ReflectionMember.as +16 -0
  142. data/vendor/as3reflection/p2/reflect/ReflectionMetaData.as +69 -0
  143. data/vendor/as3reflection/p2/reflect/ReflectionMethod.as +36 -0
  144. data/vendor/as3reflection/p2/reflect/ReflectionMethodParameter.as +19 -0
  145. data/vendor/as3reflection/p2/reflect/ReflectionVariable.as +15 -0
  146. data/vendor/as3reflection/p2/reflect/findFirst.as +14 -0
  147. data/vendor/generators/suite/USAGE +0 -0
  148. data/vendor/generators/suite/suite_generator.rb +17 -0
  149. data/vendor/generators/suite/templates/TestSuite.as +17 -0
  150. metadata +216 -0
@@ -0,0 +1,88 @@
1
+ package asunit.framework
2
+ {
3
+ import asunit.errors.AssertionFailedError;
4
+ import asunit.framework.TestCase;
5
+ import asunit.framework.Assert;
6
+
7
+ /**
8
+ * Tests assertEqualsArraysIgnoringOrder
9
+ *
10
+ * @author Bastian Krol
11
+ */
12
+ public class AssertEqualsArraysIgnoringOrderTest extends TestCase {
13
+
14
+ public function AssertEqualsArraysIgnoringOrderTest(testMethod:String = null) {
15
+ super(testMethod);
16
+ }
17
+
18
+ public function testNullEqualsNull():void {
19
+ assertEqualsArraysIgnoringOrder(Assert.assertEqualsArraysIgnoringOrder, null, null);
20
+ }
21
+
22
+ public function testNullDoesNotEqualNotNull():void {
23
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, null, []);
24
+ }
25
+
26
+ public function testNotNullDoesNotEqualNull():void {
27
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, [], null);
28
+ }
29
+
30
+ public function testEmptyArrayEqualsEmptyArray():void {
31
+ assertEqualsArraysIgnoringOrder([], []);
32
+ }
33
+
34
+ public function testArrayWithOneStringEquals():void {
35
+ assertEqualsArraysIgnoringOrder(["abcdefg"], ["abcdefg"]);
36
+ }
37
+
38
+ public function testArrayWithOneStringNotEquals():void {
39
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, ["abcdefg"], ["12345"]);
40
+ }
41
+
42
+ public function testArrayWithOneFunctionEquals():void {
43
+ assertEqualsArraysIgnoringOrder([tearDown], [tearDown]);
44
+ }
45
+
46
+ public function testArrayWithOneFunctionNotEquals():void {
47
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, [setUp], [tearDown]);
48
+ }
49
+
50
+ public function testArrayWithOneNullMemberEquals():void {
51
+ assertEqualsArraysIgnoringOrder([null], [null]);
52
+ }
53
+
54
+ public function testArrayWithOneNullMemberNotEquals1():void {
55
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, ["..."], [null]);
56
+ }
57
+
58
+ public function testArrayWithOneNullMemberNotEquals2():void {
59
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, [null], ["..."]);
60
+ }
61
+
62
+ public function testArrayEqualsSameOrder():void {
63
+ assertEqualsArraysIgnoringOrder(["abc", "def", "ghi"], ["abc", "def", "ghi"]);
64
+ }
65
+
66
+ public function testArrayNotEquals():void {
67
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, ["abc", "def", "ghi"], ["abc", "xyz", "ghi"]);
68
+ }
69
+
70
+ public function testArrayEqualsDifferentOrder1():void {
71
+ assertEqualsArraysIgnoringOrder(["abc", "def", "ghi"], ["def", "abc", "ghi"]);
72
+ }
73
+
74
+ public function testArrayEqualsDifferentTypes():void {
75
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder,
76
+ ["abc", "def", "ghi"],
77
+ ["abc", setUp, "ghi"]);
78
+ }
79
+
80
+ public function testArrayDifferentLength1():void {
81
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, ["abc", "def", "ghi"], ["abc", "def"]);
82
+ }
83
+
84
+ public function testArrayDifferentLength2():void {
85
+ assertAssertionFailed(Assert.assertEqualsArraysIgnoringOrder, ["abc", "def"], ["abc", "def", "ghi"]);
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,102 @@
1
+ package asunit.framework {
2
+
3
+ import asunit.asserts.*;
4
+ import asunit.errors.AssertionFailedError;
5
+ import asunit.framework.Assert;
6
+ import asunit.framework.TestCase;
7
+
8
+ /**
9
+ * Tests assertEqualsArrays
10
+ *
11
+ * @author Bastian Krol
12
+ */
13
+ public class AssertEqualsArraysTest {
14
+
15
+ [Test]
16
+ public function testNullEqualsNull():void {
17
+ assertEqualsArrays(null, null);
18
+ }
19
+
20
+ [Test]
21
+ public function testNullDoesNotEqualNotNull():void {
22
+ assertAssertionFailed(Assert.assertEqualsArrays, null, []);
23
+ }
24
+
25
+ [Test]
26
+ public function testNotNullDoesNotEqualNull():void {
27
+ assertAssertionFailed(Assert.assertEqualsArrays, [], null);
28
+ }
29
+
30
+ [Test]
31
+ public function testEmptyArrayEqualsEmptyArray():void {
32
+ assertEqualsArrays([], []);
33
+ }
34
+
35
+ [Test]
36
+ public function testArrayWithOneStringEquals():void {
37
+ assertEqualsArrays(["abcdefg"], ["abcdefg"]);
38
+ }
39
+
40
+ [Test]
41
+ public function testArrayWithOneStringNotEquals():void {
42
+ assertAssertionFailed(Assert.assertEqualsArrays, ["abcdefg"], ["12345"]);
43
+ }
44
+
45
+ [Test]
46
+ public function testArrayWithOneFunctionEquals():void {
47
+ assertEqualsArrays([functionReference2], [functionReference2]);
48
+ }
49
+
50
+ [Test]
51
+ public function testArrayWithOneFunctionNotEquals():void {
52
+ assertAssertionFailed(Assert.assertEqualsArrays, [functionReference1], [functionReference2]);
53
+ }
54
+
55
+ [Test]
56
+ public function testArrayWithOneNullMemberEquals():void {
57
+ assertEqualsArrays([null], [null]);
58
+ }
59
+
60
+ [Test]
61
+ public function testArrayWithOneNullMemberNotEquals1():void {
62
+ assertAssertionFailed(Assert.assertEqualsArrays, ["..."], [null]);
63
+ }
64
+
65
+ [Test]
66
+ public function testArrayWithOneNullMemberNotEquals2():void {
67
+ assertAssertionFailed(Assert.assertEqualsArrays, [null], ["..."]);
68
+ }
69
+
70
+ [Test]
71
+ public function testArrayEquals():void {
72
+ assertEqualsArrays(["abc", "def", "ghi"], ["abc", "def", "ghi"]);
73
+ }
74
+
75
+ [Test]
76
+ public function testArrayNotEquals():void {
77
+ assertAssertionFailed(Assert.assertEqualsArrays, ["abc", "def", "ghi"], ["abc", "xyz", "ghi"]);
78
+ }
79
+
80
+ [Test]
81
+ public function testArrayDifferentLength1():void {
82
+ assertAssertionFailed(Assert.assertEqualsArrays, ["abc", "def", "ghi"], ["abc", "def"]);
83
+ }
84
+
85
+ [Test]
86
+ public function testArrayDifferentLength2():void {
87
+ assertAssertionFailed(Assert.assertEqualsArrays, ["abc", "def"], ["abc", "def", "ghi"]);
88
+ }
89
+
90
+ [Test]
91
+ public function testArrayEqualsWhatever():void {
92
+ assertAssertionFailed(Assert.assertEqualsArrays, ["abc", "def", "", "jkl"], ["abc", "def", null, "jkl"]);
93
+ }
94
+
95
+ private function functionReference1():void {
96
+ }
97
+
98
+ private function functionReference2():void {
99
+ }
100
+ }
101
+ }
102
+
@@ -0,0 +1,184 @@
1
+ package asunit.framework {
2
+
3
+ public class AssertTest extends TestCase {
4
+
5
+ public function AssertTest(testMethod:String = null) {
6
+ super(testMethod);
7
+ }
8
+
9
+ public function testAssertTrue():void {
10
+ assertTrue(true);
11
+ }
12
+
13
+ public function testAssertFalse():void {
14
+ assertFalse(false);
15
+ }
16
+
17
+ public function testAssertFalseWithMessage():void {
18
+ assertFalse("message", false);
19
+ }
20
+
21
+ public function testAssertTrueWithMessage():void {
22
+ assertTrue("message", true);
23
+ }
24
+
25
+ public function testAssertTrueFailure():void {
26
+ try {
27
+ assertTrue(false);
28
+ }
29
+ catch(e:Error) {
30
+ return;
31
+ }
32
+ assertTrue("assertTrue(false) should have failed but didn't", false);
33
+ }
34
+
35
+ public function testAssertTrueMessage():void {
36
+ assertTrue("asertTrue with message", true);
37
+ }
38
+
39
+ public function testAssertTrueMessageFailure():void {
40
+ try {
41
+ assertTrue("trueMessage", false);
42
+ }
43
+ catch(e:Error) {
44
+ return;
45
+ }
46
+ assertTrue("assertTrue('message', false) should have failed but didn't", false);
47
+ }
48
+
49
+ public function testFail():void {
50
+ try {
51
+ Assert.fail("this shouldn't be caught");
52
+ }
53
+ catch(e:Error) {
54
+ assertTrue("passed", true);
55
+ return;
56
+ }
57
+ fail("failure should be thrown");
58
+ }
59
+
60
+ public function testAssertEqualsSimple():void {
61
+ var obj1:Object = new Object();
62
+ assertEquals(obj1, obj1);
63
+ }
64
+
65
+ public function testEqualsMethod():void {
66
+ var obj1:Object = new Object();
67
+ obj1.equals = function():Boolean {
68
+ return true;
69
+ };
70
+
71
+ var obj2:Object = new Object();
72
+ obj2.equals = function():Boolean {
73
+ return true;
74
+ };
75
+ assertEquals(obj1, obj2);
76
+ }
77
+
78
+ public function testEqualsSimpleMessage():void {
79
+ var obj1:Object = new Object();
80
+ assertEquals("message", obj1, obj1);
81
+ }
82
+
83
+ public function testEqualsFailure():void {
84
+ var obj1:Object = new Object();
85
+ var obj2:Object = new Object();
86
+ try {
87
+ assertEquals(obj1, obj2);
88
+ }
89
+ catch(e:Error) {
90
+ return;
91
+ }
92
+ fail("obj1 does not equal obj2");
93
+ }
94
+
95
+ public function testEqualsSimpleMessageFailure():void {
96
+ try {
97
+ var obj1:Object = new Object();
98
+ var obj2:Object = new Object();
99
+ assertEquals("message", obj1, obj2);
100
+ }
101
+ catch(e:Error) {
102
+ return;
103
+ }
104
+ fail("obj1 does not equal obj2 with message");
105
+ }
106
+
107
+ public function testNull():void {
108
+ assertNull(null);
109
+ }
110
+
111
+ public function testNullMessage():void {
112
+ assertNull("message", null);
113
+ }
114
+
115
+ public function testNullFailure():void {
116
+ var obj:Object = new Object();
117
+ try {
118
+ assertNull("message", obj);
119
+ }
120
+ catch(e:Error) {
121
+ return;
122
+ }
123
+ fail("null failure");
124
+ }
125
+
126
+ public function testNotNull():void {
127
+ var obj:Object = new Object();
128
+ assertNotNull(obj);
129
+ }
130
+
131
+ public function testNotNullFailure():void {
132
+ try {
133
+ assertNotNull(null);
134
+ }
135
+ catch(e:Error) {
136
+ return;
137
+ }
138
+ fail("not null failed");
139
+ }
140
+
141
+ public function testNotNullMessage():void {
142
+ var obj:Object = new Object();
143
+ assertNotNull("not null", obj);
144
+ }
145
+
146
+ public function testSame():void {
147
+ var obj:Object = new Object();
148
+ assertSame(obj, obj);
149
+ }
150
+
151
+ public function testSameFailure():void {
152
+ try {
153
+ assertSame(new Object(), new Object());
154
+ }
155
+ catch(e:Error) {
156
+ return;
157
+ }
158
+ fail("same failure");
159
+ }
160
+
161
+ public function testNotSame():void {
162
+ var obj1:Object = new Object();
163
+ var obj2:Object = new Object();
164
+ assertNotSame(obj1, obj2);
165
+ }
166
+
167
+ public function testNotSameFailure():void {
168
+ var obj1:Object = new Object();
169
+ try {
170
+ assertNotSame(obj1, obj1);
171
+ }
172
+ catch(e:Error) {
173
+ return;
174
+ }
175
+ fail("not same failure");
176
+ }
177
+
178
+ public function testNotSameMessage():void {
179
+ var obj1:Object = new Object();
180
+ var obj2:Object = new Object();
181
+ assertNotSame("not same message", obj1, obj2);
182
+ }
183
+ }
184
+ }
@@ -0,0 +1,42 @@
1
+ package asunit.framework {
2
+
3
+ import asunit.asserts.*;
4
+ import asunit.errors.AssertionFailedError;
5
+
6
+ public class AssertThrowsTest {
7
+
8
+ [Test]
9
+ public function throwingExpectedErrorShouldPass():void {
10
+ assertThrows(ArgumentError, function():void { throw new ArgumentError(); } );
11
+ }
12
+
13
+ [Test]
14
+ public function throwingUnexpectedErrorShouldFailWithMessage():void {
15
+ try {
16
+ assertThrows(ArgumentError, function():void { throw new Error("wrong error type"); } );
17
+ }
18
+ catch (e:AssertionFailedError) {
19
+ assertEquals("expected error type:<ArgumentError> but was:<Error>", e.message)
20
+ return;
21
+ }
22
+ fail('failed assertThrows() should have thrown AssertionFailedError');
23
+ }
24
+
25
+ /**
26
+ * Captures a bug in original assertThrows implementation
27
+ * where the message when nothing was thrown said "but was:<AssertionFailedError>".
28
+ */
29
+ [Test]
30
+ public function throwingNoErrorShouldFailWithMessage():void {
31
+ try {
32
+ assertThrows(ArgumentError, function():void { } );
33
+ }
34
+ catch (e:AssertionFailedError) {
35
+ assertEquals("expected error type:<ArgumentError> but none was thrown.", e.message)
36
+ return;
37
+ }
38
+ fail('failed assertThrows() should have thrown AssertionFailedError');
39
+ }
40
+ }
41
+ }
42
+
@@ -0,0 +1,69 @@
1
+ package asunit.framework {
2
+
3
+ import asunit.asserts.*;
4
+
5
+ import flash.display.Sprite;
6
+ import flash.utils.setTimeout;
7
+
8
+ public class AsyncMethodTest {
9
+
10
+ [Inject]
11
+ public var async:IAsync;
12
+
13
+ [Inject]
14
+ public var sprite:Sprite;
15
+
16
+ [Before]
17
+ protected function setUp():void {
18
+ var handler:Function = async.add(asyncSetupHandler);
19
+ setTimeout(handler, 0);
20
+ }
21
+
22
+ public function asyncSetupHandler():void{
23
+ }
24
+
25
+ [Test]
26
+ public function testInstantiated():void {
27
+ assertTrue("Sprite instantiated", sprite is Sprite);
28
+ }
29
+
30
+ [Test]
31
+ public function testAsyncMethod():void {
32
+ var handler:Function = async.add(asyncHandler);
33
+ setTimeout(handler, 0);
34
+ }
35
+
36
+ private function asyncHandler():void {
37
+ assertTrue(sprite is Sprite);
38
+ }
39
+
40
+ [Test]
41
+ public function testAsyncVisualEntity():void {
42
+ var handler:Function = async.add(spriteHandler);
43
+ setTimeout(handler, 0);
44
+ }
45
+
46
+ private function spriteHandler():void {
47
+ assertTrue(sprite is Sprite);
48
+ }
49
+
50
+ [Test]
51
+ public function testAsyncVisualEntity2():void {
52
+ var handler:Function = async.add(spriteHandler);
53
+ setTimeout(handler, 0);
54
+ }
55
+
56
+ [Test]
57
+ public function testMultipleAsyncMethod():void {
58
+ var handler1:Function = async.add(spriteHandler);
59
+ var handler2:Function = async.add(spriteHandler);
60
+ setTimeout(handler1, 0);
61
+ setTimeout(handler2, 0);
62
+ }
63
+
64
+ [Test]
65
+ public function testAsyncSetup():void{
66
+ assertTrue(sprite is Sprite);
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,104 @@
1
+ package asunit.framework {
2
+
3
+ import asunit.asserts.*;
4
+ import asunit.events.TimeoutCommandEvent;
5
+ import asunit.framework.Async;
6
+ import asunit.framework.IAsync;
7
+ import asunit.framework.TestCase;
8
+
9
+ import flash.events.Event;
10
+ import flash.events.EventDispatcher;
11
+ import flash.utils.setTimeout;
12
+
13
+ public class AsyncTest {
14
+
15
+ [Inject]
16
+ public var async:IAsync;
17
+
18
+ [Inject]
19
+ public var dispatcher:EventDispatcher;
20
+
21
+ private var orphanAsync:IAsync;
22
+ private var command:TimeoutCommand;
23
+
24
+ [Before]
25
+ public function createOrphanAsync():void {
26
+ orphanAsync = new Async();
27
+ }
28
+
29
+ [After]
30
+ public function destroyOrphanAsync():void {
31
+ orphanAsync = null;
32
+ }
33
+
34
+ [Test]
35
+ public function asyncHandlerCanBeRetrievedByTestInstance():void {
36
+ var cancelTimeout:Function = async.add(foo);
37
+
38
+ var commands:Array = async.getPending();
39
+ assertEquals("one command for test after addAsync()", 1, commands.length);
40
+
41
+ var command:TimeoutCommand = commands[0];
42
+ assertSame("handler is the same function passed to addAsync", foo, command.handler);
43
+
44
+ cancelTimeout();
45
+
46
+ assertEquals("no commands for test after handler called", 0, async.getPending().length);
47
+ }
48
+
49
+ [Test]
50
+ public function addAsyncShouldSendCALLEDEventIfDelegateCalledInTime():void {
51
+ var cancelTimeout:Function = async.add(foo, 50);
52
+
53
+ command = async.getPending()[0];
54
+
55
+ // Use AsUnit 3's addAsync() to verify onAsyncMethodCalled is called.
56
+ command.addEventListener(TimeoutCommandEvent.CALLED, async.add(onAsyncMethodCalled));
57
+
58
+ // If all goes well, the ErrorEvent won't be dispatched.
59
+ command.addEventListener(TimeoutCommandEvent.TIMED_OUT, failIfCalled);
60
+
61
+ // cancelTimeout is called faster than async.add duration
62
+ setTimeout(cancelTimeout, 0);
63
+ }
64
+
65
+ private function onAsyncMethodCalled(e:Event):void {
66
+ assertEquals("event type", TimeoutCommandEvent.CALLED, e.type);
67
+ }
68
+
69
+ [Ignore(description="Async failure, but I'm no longer convinced that there is any value in this test case. Do we care if the TimeoutCommand can throw events? So long as we verify our failure state from the runner?")]
70
+ [Test]
71
+ public function addAsyncShouldSendErrorEventIfDelegateNotCalledInTime():void {
72
+
73
+ // This should be called by the orphanAsync instance when the timeout is exceeded:
74
+ var asyncMethodFailedHandler:Function = function(event:TimeoutCommandEvent):void {
75
+ assertEquals("event type", TimeoutCommandEvent.TIMED_OUT, event.type);
76
+ command.removeEventListener(TimeoutCommandEvent.CALLED, failIfCalled);
77
+ command.removeEventListener(TimeoutCommandEvent.TIMED_OUT, asyncMethodFailedHandler);
78
+ }
79
+
80
+ var timeoutHandler:Function = orphanAsync.add(null, 1);
81
+ // Set a timeout on the orphanAsync, but also pass this
82
+ // to the actual, outer test run async - when this is called,
83
+ // the outer test run can continue.
84
+ var cancelTimeout:Function = async.add(timeoutHandler, 500);
85
+
86
+ // Add subscriptions to the timeout command:
87
+ command = orphanAsync.getPending()[0];
88
+ command.addEventListener(TimeoutCommandEvent.CALLED, failIfCalled);
89
+ command.addEventListener(TimeoutCommandEvent.TIMED_OUT, orphanAsync.add(asyncMethodFailedHandler));
90
+
91
+ // we should attempt to call the async handler AFTER the timeout
92
+ // has already expired. The handler should NOT get called...
93
+ setTimeout(cancelTimeout, 10);
94
+ }
95
+
96
+
97
+ private function failIfCalled(event:Event=null):void {
98
+ fail("AsyncTest: This function should not have been called");
99
+ }
100
+ //TODO: You might want to delete this since it is basically a no-op handler. You could send instead now.
101
+ private function foo():void {};
102
+ }
103
+ }
104
+
@@ -0,0 +1,73 @@
1
+ package asunit.framework {
2
+
3
+ import asunit.asserts.*;
4
+ import asunit.support.FakeObserver;
5
+ import asunit.framework.Result;
6
+ import asunit.framework.CallbackBridge;
7
+
8
+ public class CallbackBridgeTest {
9
+
10
+ private var bridge:CallbackBridge;
11
+
12
+ private var observer:FakeObserver;
13
+
14
+ [Before]
15
+ public function createObserver():void {
16
+ observer = new FakeObserver();
17
+ bridge = new CallbackBridge();
18
+ bridge.addListener(observer);
19
+ }
20
+
21
+ [After]
22
+ public function destroyObserver():void {
23
+ observer = null;
24
+ }
25
+
26
+ [Test]
27
+ public function canInstantiate():void {
28
+ assertTrue("instance is CallbackBridge", bridge is CallbackBridge);
29
+ }
30
+
31
+ [Test]
32
+ public function addListenerWorked():void {
33
+ assertEquals(1, bridge.length);
34
+ }
35
+
36
+ [Test]
37
+ public function addedListenerReceivesOnRunStarted():void {
38
+ bridge.onRunStarted();
39
+ assertTrue(observer.onRunStartedCalled);
40
+ }
41
+
42
+ [Test]
43
+ public function addedListenerReceivesOnTestStarted():void {
44
+ bridge.onTestStarted(null);
45
+ assertTrue(observer.onTestStartedCalled);
46
+ }
47
+
48
+ [Test]
49
+ public function shouldHaveDefaultRunCount():void
50
+ {
51
+ assertEquals(0, bridge.runCount);
52
+ }
53
+
54
+ [Test]
55
+ public function shouldHaveCumulativeRunCount():void
56
+ {
57
+ /*
58
+ function onTestStarted(test:Object):void;
59
+ function onTestCompleted(test:Object):void;
60
+ function onTestFailure(failure:ITestFailure):void;
61
+ function onTestSuccess(success:ITestSuccess):void;
62
+ */
63
+ bridge.onTestStarted(null);
64
+ bridge.onTestSuccess(null);
65
+ bridge.onTestCompleted(null);
66
+ bridge.onTestStarted(null);
67
+ bridge.onTestSuccess(null);
68
+ bridge.onTestCompleted(null);
69
+ assertEquals(2, bridge.runCount);
70
+ }
71
+
72
+ }
73
+ }