@@ -481,11 +481,11 @@ class SwiftTaskTests: _TestCase
481481 var expect = self . expectationWithDescription ( __FUNCTION__)
482482 var progressCount = 0
483483
484- let task = self . _interruptableTask ( ) // 1st async task (5 progresses)
484+ let task = _interruptableTask ( progressCount : 5 ) // 1st async task (5 progresses)
485485
486486 // chain async-task with then
487487 let task3 = task. then { [ weak self] _ -> _InterruptableTask in
488- let task2 = self ! . _interruptableTask ( ) // 2st async task (5 progresses)
488+ let task2 = _interruptableTask ( progressCount : 7 ) // 2st async task (7 progresses)
489489 return task2
490490 }
491491
@@ -495,7 +495,7 @@ class SwiftTaskTests: _TestCase
495495 return
496496 } . success { value -> Void in
497497 XCTAssertEqual ( value, " OK " )
498- XCTAssertEqual ( progressCount, 5 , " `task3` should receive progress only from `task2` but not from `task`. " )
498+ XCTAssertEqual ( progressCount, 7 , " `task3` should receive progress only from `task2` but not from `task`. " )
499499 expect. fulfill ( )
500500 }
501501
@@ -510,11 +510,11 @@ class SwiftTaskTests: _TestCase
510510 var expect = self . expectationWithDescription ( __FUNCTION__)
511511 var progressCount = 0
512512
513- let task = self . _interruptableTask ( ) // 1st async task (5 progresses)
513+ let task = _interruptableTask ( progressCount : 5 ) // 1st async task (5 progresses)
514514
515515 // chain async-task with success
516516 let task3 = task. success { [ weak self] _ -> _InterruptableTask in
517- let task2 = self ! . _interruptableTask ( ) // 2st async task (5 progresses)
517+ let task2 = _interruptableTask ( progressCount : 7 ) // 2st async task (7 progresses)
518518 return task2
519519 }
520520
@@ -524,7 +524,7 @@ class SwiftTaskTests: _TestCase
524524 return
525525 } . success { value -> Void in
526526 XCTAssertEqual ( value, " OK " )
527- XCTAssertEqual ( progressCount, 5 , " `task3` should receive progress only from `task2` but not from `task`. " )
527+ XCTAssertEqual ( progressCount, 7 , " `task3` should receive progress only from `task2` but not from `task`. " )
528528 expect. fulfill ( )
529529 }
530530
@@ -539,11 +539,11 @@ class SwiftTaskTests: _TestCase
539539 var expect = self . expectationWithDescription ( __FUNCTION__)
540540 var progressCount = 0
541541
542- let task = self . _interruptableTask ( . Rejected) // 1st async task (5 progresses -> rejected)
542+ let task = _interruptableTask ( progressCount : 5 , finalState : . Rejected) // 1st async task (5 progresses -> rejected)
543543
544544 // chain async-task with failure
545545 let task3 = task. failure { [ weak self] _ -> _InterruptableTask in
546- let task2 = self ! . _interruptableTask ( ) // 2st async task (5 progresses)
546+ let task2 = _interruptableTask ( progressCount : 7 ) // 2st async task (7 progresses)
547547 return task2
548548 }
549549
@@ -553,7 +553,7 @@ class SwiftTaskTests: _TestCase
553553 return
554554 } . success { value -> Void in
555555 XCTAssertEqual ( value, " OK " )
556- XCTAssertEqual ( progressCount, 5 , " `task3` should receive progress only from `task2` but not from `task`. " )
556+ XCTAssertEqual ( progressCount, 7 , " `task3` should receive progress only from `task2` but not from `task`. " )
557557 expect. fulfill ( )
558558 }
559559
@@ -564,81 +564,17 @@ class SwiftTaskTests: _TestCase
564564 // MARK: - Cancel
565565 //--------------------------------------------------
566566
567- typealias _InterruptableTask = Task < Float , String , ErrorString >
568-
569- /// 1. 3 progresses at t=0.2
570- /// 2. checks cancel & pause at t=0.4
571- /// 3. add 2 progresses & fulfill with "OK" or reject with "ERROR" at t=0.4~ (if not paused)
572- func _interruptableTask( _ finalState: TaskState = . Fulfilled) -> _InterruptableTask
573- {
574- return Task < Float , String , ErrorString > { progress, fulfill, reject, configure in
575-
576- // NOTE: not a good flag, watch out for race condition!
577- var isCancelled = false
578- var isPaused = false
579-
580- // 1st delay (t=0.2)
581- Async . background ( after: 0.2 ) {
582-
583- Async . main { progress ( 0.0 ) }
584- Async . main { progress ( 0.2 ) }
585- Async . main { progress ( 0.5 ) }
586-
587- // 2nd delay (t=0.4)
588- Async . background ( after: 0.2 ) {
589-
590- // NOTE: no need to call reject() because it's already rejected (cancelled) internally
591- if isCancelled { return }
592-
593- while isPaused {
594- println ( " pausing... " )
595- NSThread . sleepForTimeInterval ( 0.1 )
596- }
597-
598- Async . main { progress ( 0.8 ) }
599- Async . main { progress ( 1.0 ) }
600- Async . main {
601- if finalState == . Fulfilled {
602- fulfill ( " OK " )
603- }
604- else {
605- reject ( " ERROR " )
606- }
607- }
608- }
609- }
610-
611- configure. pause = {
612- isPaused = true ;
613- return
614- }
615- configure. resume = {
616- isPaused = false ;
617- return
618- }
619- configure. cancel = {
620- isCancelled = true ;
621- return
622- }
623-
624- }
625- }
626-
627567 func testCancel( )
628568 {
629569 var expect = self . expectationWithDescription ( __FUNCTION__)
630570 var progressCount = 0
631571
632- let task = self . _interruptableTask ( )
572+ let task = _interruptableTask ( progressCount : 5 )
633573
634574 task. progress { oldProgress, newProgress in
635575
636576 progressCount++
637577
638- // 0.0 <= progress <= 0.5 (not 1.0)
639- XCTAssertTrue ( newProgress >= 0 )
640- XCTAssertTrue ( newProgress <= 0.5 )
641-
642578 // 1 <= progressCount <= 3 (not 5)
643579 XCTAssertGreaterThanOrEqual ( progressCount, 1 )
644580 XCTAssertLessThanOrEqual ( progressCount, 3 , " progressCount should be stopped to 3 instead of 5 because of cancellation. " )
@@ -652,7 +588,7 @@ class SwiftTaskTests: _TestCase
652588 XCTAssertEqual ( error!, " I get bored. " )
653589 XCTAssertTrue ( isCancelled)
654590
655- XCTAssertEqual ( progressCount, 3 , " progressCount should be stopped to 3 instead of 5 because of cancellation. " )
591+ XCTAssertEqual ( progressCount, 2 , " progressCount should be stopped to 2 instead of 5 because of cancellation. " )
656592
657593 expect. fulfill ( )
658594
@@ -674,13 +610,13 @@ class SwiftTaskTests: _TestCase
674610 {
675611 var expect = self . expectationWithDescription ( __FUNCTION__)
676612
677- let task1 = self . _interruptableTask ( )
613+ let task1 = _interruptableTask ( progressCount : 5 )
678614
679615 var task2 : _InterruptableTask ? = nil
680616
681617 let task3 = task1. then { value, errorInfo -> _InterruptableTask in
682618
683- task2 = self . _interruptableTask ( )
619+ task2 = _interruptableTask ( progressCount : 5 )
684620 return task2!
685621
686622 }
@@ -722,7 +658,7 @@ class SwiftTaskTests: _TestCase
722658 var expect = self . expectationWithDescription ( __FUNCTION__)
723659 var progressCount = 0
724660
725- let task = self . _interruptableTask ( )
661+ let task = _interruptableTask ( progressCount : 5 )
726662
727663 task. progress { _ in
728664
@@ -743,13 +679,13 @@ class SwiftTaskTests: _TestCase
743679 task. pause ( )
744680
745681 XCTAssertEqual ( task. state, TaskState . Paused)
746- XCTAssertTrue ( task. progress? == 0.5 )
682+ XCTAssertTrue ( task. progress? == 2 )
747683
748684 // resume after 0.3sec (t=0.6)
749685 Async . main ( after: 0.3 ) {
750686
751687 XCTAssertEqual ( task. state, TaskState . Paused)
752- XCTAssertTrue ( task. progress? == 0.5 )
688+ XCTAssertTrue ( task. progress? == 2 )
753689
754690 task. resume ( )
755691 XCTAssertEqual ( task. state, TaskState . Running)
@@ -767,12 +703,12 @@ class SwiftTaskTests: _TestCase
767703
768704 var expect = self . expectationWithDescription ( __FUNCTION__)
769705
770- let task = self . _interruptableTask ( )
706+ let task = _interruptableTask ( progressCount : 5 )
771707 weak var innerTask : _InterruptableTask ?
772708
773709 // chain async-task with then
774710 let task2 = task. then { [ weak self] _ -> _InterruptableTask in
775- innerTask = self ! . _interruptableTask ( )
711+ innerTask = _interruptableTask ( progressCount : 5 )
776712 return innerTask!
777713 }
778714
@@ -793,7 +729,7 @@ class SwiftTaskTests: _TestCase
793729 XCTAssertNil ( task2. progress, " `task2.progress` should be nil because `innerTask.progress()` has not been invoked yet. " )
794730
795731 XCTAssertEqual ( task. state, TaskState . Paused, " Parent task should also be paused. " )
796- XCTAssertTrue ( task. progress? == 0.5 )
732+ XCTAssertTrue ( task. progress? == 2 )
797733
798734 // resume after 0.3sec (t=0.6)
799735 Async . main ( after: 0.3 ) {
@@ -802,7 +738,7 @@ class SwiftTaskTests: _TestCase
802738 XCTAssertNil ( task2. progress, " `task2.progress` should still be nil. " )
803739
804740 XCTAssertEqual ( task. state, TaskState . Paused, " Parent task should also be paused. " )
805- XCTAssertTrue ( task. progress? == 0.5 )
741+ XCTAssertTrue ( task. progress? == 2 )
806742
807743 task2. resume ( )
808744 XCTAssertEqual ( task2. state, TaskState . Running)
@@ -821,12 +757,12 @@ class SwiftTaskTests: _TestCase
821757
822758 var expect = self . expectationWithDescription ( __FUNCTION__)
823759
824- let task = self . _interruptableTask ( )
760+ let task = _interruptableTask ( progressCount : 5 )
825761 weak var innerTask : _InterruptableTask ?
826762
827763 // chain async-task with success
828764 let task2 = task. success { [ weak self] _ -> _InterruptableTask in
829- innerTask = self ! . _interruptableTask ( )
765+ innerTask = _interruptableTask ( progressCount : 5 )
830766 return innerTask!
831767 }
832768
@@ -845,7 +781,7 @@ class SwiftTaskTests: _TestCase
845781 XCTAssertNil ( task2. progress, " `task2.progress` should be nil because `innerTask.progress()` has not been invoked yet. " )
846782
847783 XCTAssertEqual ( task. state, TaskState . Paused, " Parent task should also be paused. " )
848- XCTAssertTrue ( task. progress? == 0.5 )
784+ XCTAssertTrue ( task. progress? == 2 )
849785
850786 // resume after 0.3sec (t=0.6)
851787 Async . main ( after: 0.3 ) {
@@ -856,7 +792,7 @@ class SwiftTaskTests: _TestCase
856792 XCTAssertNil ( task2. progress, " `task2.progress` should still be nil. " )
857793
858794 XCTAssertEqual ( task. state, TaskState . Paused, " Parent task should also be paused. " )
859- XCTAssertTrue ( task. progress? == 0.5 )
795+ XCTAssertTrue ( task. progress? == 2 )
860796
861797 task2. resume ( )
862798 XCTAssertEqual ( task2. state, TaskState . Running)
@@ -875,12 +811,12 @@ class SwiftTaskTests: _TestCase
875811
876812 var expect = self . expectationWithDescription ( __FUNCTION__)
877813
878- let task = self . _interruptableTask ( )
814+ let task = _interruptableTask ( progressCount : 5 )
879815 weak var innerTask : _InterruptableTask ?
880816
881817 // chain async-task with failure
882818 let task2 = task. failure { [ weak self] _ -> _InterruptableTask in
883- innerTask = self ! . _interruptableTask ( )
819+ innerTask = _interruptableTask ( progressCount : 5 )
884820 return innerTask!
885821 }
886822
@@ -899,7 +835,7 @@ class SwiftTaskTests: _TestCase
899835 XCTAssertNil ( task2. progress, " `task2.progress` should be nil because `innerTask.progress()` has not been invoked yet. " )
900836
901837 XCTAssertEqual ( task. state, TaskState . Paused, " Parent task should also be paused. " )
902- XCTAssertTrue ( task. progress? == 0.5 )
838+ XCTAssertTrue ( task. progress? == 2 )
903839
904840 // resume after 0.3sec (t=0.6)
905841 Async . main ( after: 0.3 ) {
@@ -908,7 +844,7 @@ class SwiftTaskTests: _TestCase
908844 XCTAssertNil ( task2. progress, " `task2.progress` should still be nil. " )
909845
910846 XCTAssertEqual ( task. state, TaskState . Paused, " Parent task should also be paused. " )
911- XCTAssertTrue ( task. progress? == 0.5 )
847+ XCTAssertTrue ( task. progress? == 2 )
912848
913849 task2. resume ( )
914850 XCTAssertEqual ( task2. state, TaskState . Running)
0 commit comments