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,69 @@
1
+ package asunit.support {
2
+
3
+ import asunit.asserts.*;
4
+ import asunit.framework.Async;
5
+ import asunit.framework.IAsync;
6
+
7
+ import flash.display.Sprite;
8
+
9
+ public class InjectionVerification {
10
+
11
+ [Inject]
12
+ public var iAsync:IAsync;
13
+
14
+ [Inject]
15
+ public var async:Async;
16
+
17
+ [Inject]
18
+ public var context:Sprite;
19
+
20
+ [Inject(someString="stringValue", someBoolean=false, someNumber=23.4, someInt=-23, someUInt=25)]
21
+ public var custom:CustomParameters;
22
+
23
+ [Test]
24
+ public function injectedShouldReceiveUIntValue():void {
25
+ assertSame(25, custom.someUInt);
26
+ }
27
+
28
+ [Test]
29
+ public function injectedShouldReceiveIntegerValue():void {
30
+ assertSame(-23, custom.someInt);
31
+ }
32
+
33
+ [Test]
34
+ public function injectedShouldReceiveNumberValue():void {
35
+ assertSame(23.4, custom.someNumber);
36
+ }
37
+
38
+ [Test]
39
+ public function injectedShouldReceiveBooleanValue():void {
40
+ assertSame(false, custom.someBoolean);
41
+ }
42
+
43
+ [Test]
44
+ public function injectedShouldReceiveStringValue():void {
45
+ assertEquals("stringValue", custom.someString);
46
+ }
47
+
48
+ [Test]
49
+ public function verifyDisplayObjectInjection():void {
50
+ assertNotNull("DisplayObject should exiset", context);
51
+ }
52
+
53
+ [Test]
54
+ public function verifyDisplayObjectAttachedToStage():void {
55
+ assertNotNull("DisplayObjects hould be attached", context.stage);
56
+ }
57
+
58
+ [Test]
59
+ public function verifyAsyncInjection():void {
60
+ assertNotNull(async);
61
+ }
62
+
63
+ [Test]
64
+ public function verifyIAsyncInjection():void {
65
+ assertNotNull(iAsync);
66
+ }
67
+ }
68
+ }
69
+
@@ -0,0 +1,38 @@
1
+ package asunit.support {
2
+
3
+ import asunit.framework.TestCase;
4
+
5
+ public class LegacyTestCase extends TestCase {
6
+
7
+ public static var callCount:int;
8
+
9
+ private var instance:*;
10
+
11
+ override protected function setUp():void {
12
+ super.setUp();
13
+ instance = {};
14
+ instance.name = "foo";
15
+ }
16
+
17
+ override protected function tearDown():void {
18
+ super.tearDown();
19
+ instance = null;
20
+ }
21
+
22
+ public function testSomething():void {
23
+ assertEquals("foo", instance.name);
24
+ }
25
+
26
+ public function someNonTestMethod():void {
27
+ throw new Error("This should not be called");
28
+ }
29
+
30
+ [Test]
31
+ // Ensure this method only gets called once
32
+ // in a given test run...
33
+ public function testSomethingElse():void {
34
+ callCount++;
35
+ }
36
+ }
37
+ }
38
+
@@ -0,0 +1,77 @@
1
+ package asunit.support {
2
+
3
+ import asunit.asserts.*;
4
+
5
+ import flash.display.Sprite;
6
+
7
+ public class MultiMethod {
8
+
9
+ public static var methodsCalled:Array = [];
10
+
11
+ protected var sprite:Sprite;
12
+
13
+ public function MultiMethod() {
14
+ }
15
+
16
+ [BeforeClass]
17
+ public static function runBeforeClass1():void {
18
+ methodsCalled.push(arguments.callee);
19
+ }
20
+
21
+ [BeforeClass]
22
+ public static function runBeforeClass2():void {
23
+ methodsCalled.push(arguments.callee);
24
+ }
25
+
26
+ [Before]
27
+ public function runBefore1():void {
28
+ methodsCalled.push(arguments.callee);
29
+ sprite = new Sprite();
30
+ }
31
+
32
+ [Before]
33
+ public function runBefore2():void {
34
+ methodsCalled.push(arguments.callee);
35
+ }
36
+
37
+ [After]
38
+ public function runAfter1():void {
39
+ methodsCalled.push(arguments.callee);
40
+ sprite = null;
41
+ }
42
+
43
+ [After]
44
+ public function runAfter2():void {
45
+ methodsCalled.push(arguments.callee);
46
+ }
47
+
48
+ [Test]
49
+ public function numChildren_is_0_by_default():void {
50
+ methodsCalled.push(arguments.callee);
51
+ assertEquals(0, sprite.numChildren);
52
+ }
53
+
54
+ [Test]
55
+ public function stage_is_null_by_default():void {
56
+ methodsCalled.push(arguments.callee);
57
+ assertNull(sprite.stage);
58
+ }
59
+
60
+ [Test]
61
+ public function fail_assertEquals():void {
62
+ methodsCalled.push(arguments.callee);
63
+ assertEquals('wrongName', sprite.name);
64
+ }
65
+
66
+ [AfterClass]
67
+ public static function runAfterClass1():void {
68
+ methodsCalled.push(arguments.callee);
69
+ }
70
+
71
+ [AfterClass]
72
+ public static function runAfterClass2():void {
73
+ methodsCalled.push(arguments.callee);
74
+ }
75
+ }
76
+ }
77
+
@@ -0,0 +1,36 @@
1
+ package asunit.support {
2
+
3
+ import asunit.asserts.*;
4
+
5
+ import flash.display.Sprite;
6
+
7
+ public class OrderedTestMethod {
8
+
9
+ public var methodsCalled:Array = [];
10
+
11
+ public function OrderedTestMethod() {
12
+ }
13
+
14
+ // Method names are chosen to avoid coinciding with alphabetical order.
15
+
16
+ [Test(order=2)]
17
+ public function two():void {
18
+ methodsCalled.push(arguments.callee);
19
+ }
20
+
21
+ [Test(order=3)]
22
+ public function three():void {
23
+ methodsCalled.push(arguments.callee);
24
+ }
25
+
26
+ [Test]
27
+ public function zeroIsDefaultOrder():void {
28
+ methodsCalled.push(arguments.callee);
29
+ }
30
+
31
+ [Test(order=-1)]
32
+ public function negativeOrderIsAllowed():void {
33
+ methodsCalled.push(arguments.callee);
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,14 @@
1
+ package asunit.support {
2
+
3
+ import asunit.asserts.*;
4
+
5
+ [RunWith]
6
+ public class RunWithButNoType {
7
+
8
+ [Test]
9
+ public function simplePassing():void {
10
+ assertTrue("This will pass, we're interested in the RunWith", true);
11
+ }
12
+ }
13
+ }
14
+
@@ -0,0 +1,11 @@
1
+ package asunit.support {
2
+
3
+ [RunWith]
4
+ [Suite]
5
+ public class RunWithSuiteButNoType {
6
+
7
+ // Just used to indicate this is a Suite:
8
+ public var testCase:SucceedAssertTrue;
9
+ }
10
+ }
11
+
@@ -0,0 +1,7 @@
1
+ package asunit.support {
2
+
3
+ [Suite]
4
+ public class SingleErrorSuite {
5
+ public var errorInMethodTest:ErrorInMethod;
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ package asunit.support {
2
+
3
+ [Suite]
4
+ public class SingleSuccessSuite {
5
+ public var succeedAssertTrue:SucceedAssertTrue;
6
+ }
7
+ }
@@ -0,0 +1,31 @@
1
+ package asunit.support {
2
+
3
+ import asunit.asserts.*;
4
+
5
+ public class SucceedAssertTrue{
6
+
7
+ public var methodsCalled:Array;
8
+
9
+ public function SucceedAssertTrue() {
10
+ methodsCalled = [];
11
+ }
12
+
13
+ [Before]
14
+ public function runBefore():void {
15
+ methodsCalled.push(arguments.callee);
16
+ }
17
+
18
+ [After]
19
+ public function runAfter():void {
20
+ methodsCalled.push(arguments.callee);
21
+ }
22
+
23
+ [Test]
24
+ public function succeed_assertTrue():void {
25
+ methodsCalled.push(arguments.callee);
26
+ assertTrue(true);
27
+ }
28
+
29
+ }
30
+
31
+ }
@@ -0,0 +1,8 @@
1
+ package asunit.support {
2
+
3
+ [Suite]
4
+ public class SuiteOfTwoSuites {
5
+ public var singleSuccessSuite:SingleSuccessSuite;
6
+ public var doubleFailSuite:DoubleFailSuite;
7
+ }
8
+ }
@@ -0,0 +1,12 @@
1
+ package asunit.support {
2
+
3
+ [Suite]
4
+ [RunWith("asunit.support.CustomTestRunner")]
5
+ public class SuiteWithCustomRunner {
6
+
7
+ public var succeedAssertTrue:SucceedAssertTrue;
8
+ public var singleSuccessSuite:SingleSuccessSuite;
9
+ public var multiMethod:MultiMethod;
10
+ }
11
+ }
12
+
@@ -0,0 +1,10 @@
1
+ package asunit.support {
2
+
3
+ [Suite]
4
+ public class SuiteWithOneCustomChildSuite {
5
+
6
+ public var suiteWithCustomRunner:SuiteWithCustomRunner;
7
+ public var orderedTestMethod:OrderedTestMethod;
8
+ }
9
+ }
10
+
@@ -0,0 +1,14 @@
1
+ package asunit.support {
2
+
3
+ // Declare a fully-qualified runner for this test case:
4
+ [RunWith("asunit.support::FakeRunner")]
5
+ public class TestForFakeRunner {
6
+
7
+ private var runnerReference:FakeRunner;
8
+
9
+ public function customTestMethod():int {
10
+ throw new Error("This method shouldn't really get called");
11
+ }
12
+ }
13
+ }
14
+
@@ -0,0 +1,65 @@
1
+ package asunit.util {
2
+ import asunit.framework.TestCase;
3
+
4
+ public class ArrayIteratorTest extends TestCase {
5
+ private var itr:ArrayIterator;
6
+
7
+ public function ArrayIteratorTest(testMethod:String = null) {
8
+ super(testMethod);
9
+ }
10
+
11
+ protected override function setUp():void {
12
+ itr = new ArrayIterator(getSimpleArray(5));
13
+ }
14
+
15
+ private function getSimpleArray(count:Number):Array {
16
+ var arr:Array = new Array();
17
+ for(var i:Number = 0; i < count; i++) {
18
+ arr.push("item-" + i);
19
+ }
20
+ return arr;
21
+ }
22
+
23
+ protected override function tearDown():void {
24
+ itr = null;
25
+ }
26
+
27
+ public function testInstantiated():void {
28
+ assertTrue("ArrayIterator instantiated", itr is ArrayIterator);
29
+ }
30
+
31
+ public function testHasNext():void {
32
+ assertTrue(itr.hasNext());
33
+ }
34
+
35
+ public function testNext():void {
36
+ assertEquals("item-0", itr.next());
37
+ }
38
+
39
+ public function testNextTwice():void {
40
+ assertEquals("item-0", itr.next());
41
+ assertEquals("item-1", itr.next());
42
+ }
43
+
44
+ public function testLast():void {
45
+ assertTrue(itr.hasNext());
46
+ assertEquals("item-0", itr.next());
47
+ assertTrue(itr.hasNext());
48
+ assertEquals("item-1", itr.next());
49
+ assertTrue(itr.hasNext());
50
+ assertEquals("item-2", itr.next());
51
+ assertTrue(itr.hasNext());
52
+ assertEquals("item-3", itr.next());
53
+ assertTrue(itr.hasNext());
54
+ assertEquals("item-4", itr.next());
55
+ assertFalse(itr.hasNext());
56
+ }
57
+
58
+ public function testReset():void {
59
+ testLast();
60
+ itr.reset();
61
+ assertTrue(itr.hasNext());
62
+ assertEquals("item-0", itr.next());
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,7 @@
1
+ These source files should be merged with the src path in the source
2
+ distribution of AsUnit, but when compiling, developing and testing
3
+ AsUnit, we should always build against the lib/Reflection.swc
4
+
5
+ These files are being included simply to avoid making users add
6
+ another SWC to their library-path.
7
+