@@ -752,16 +752,30 @@ final class JobsTests: XCTestCase {
752
752
static let jobName = " testCancellableJob "
753
753
let value : Int
754
754
}
755
+ struct NoneCancelledJobParameters : JobParameters {
756
+ static let jobName = " NoneCancelledJob "
757
+ let value : Int
758
+ }
755
759
let expectation = XCTestExpectation ( description: " TestJob.execute was called " , expectedFulfillmentCount: 1 )
756
- let jobExecutionSequence : NIOLockedValueBox < [ Int ] > = . init( [ ] )
760
+ let didRunCancelledJob : NIOLockedValueBox < Bool > = . init( false )
761
+ let didRunNoneCancelledJob : NIOLockedValueBox < Bool > = . init( false )
757
762
758
763
let jobQueue = try await self . createJobQueue ( numWorkers: 1 , configuration: . init( ) , function: #function)
759
764
760
765
try await testPriorityJobQueue ( jobQueue: jobQueue) { queue in
761
766
queue. registerJob ( parameters: TestParameters . self) { parameters, context in
762
767
context. logger. info ( " Parameters= \( parameters. value) " )
763
- jobExecutionSequence. withLockedValue {
764
- $0. append ( parameters. value)
768
+ didRunCancelledJob. withLockedValue {
769
+ $0 = true
770
+ }
771
+ try await Task . sleep ( for: . milliseconds( Int . random ( in: 10 ..< 50 ) ) )
772
+ expectation. fulfill ( )
773
+ }
774
+
775
+ queue. registerJob ( parameters: NoneCancelledJobParameters . self) { parameters, context in
776
+ context. logger. info ( " Parameters= \( parameters. value) " )
777
+ didRunNoneCancelledJob. withLockedValue {
778
+ $0 = true
765
779
}
766
780
try await Task . sleep ( for: . milliseconds( Int . random ( in: 10 ..< 50 ) ) )
767
781
expectation. fulfill ( )
@@ -775,7 +789,7 @@ final class JobsTests: XCTestCase {
775
789
)
776
790
777
791
try await queue. push (
778
- TestParameters ( value: 2025 ) ,
792
+ NoneCancelledJobParameters ( value: 2025 ) ,
779
793
options: . init(
780
794
priority: . highest( )
781
795
)
@@ -794,15 +808,14 @@ final class JobsTests: XCTestCase {
794
808
}
795
809
796
810
await fulfillment ( of: [ expectation] , timeout: 10 )
797
- // Job has been removed
811
+ // Jobs has been removed
798
812
let cancelledJobs = try await jobQueue. queue. getJobs ( withStatus: . cancelled)
799
813
XCTAssertEqual ( cancelledJobs. count, 0 )
800
814
801
815
await serviceGroup. triggerGracefulShutdown ( )
802
-
803
- try await jobQueue. queue. delete ( jobID: cancellableJob)
804
816
}
805
817
}
806
- XCTAssertEqual ( jobExecutionSequence. withLockedValue { $0 } , [ 2025 ] )
818
+ XCTAssertEqual ( didRunCancelledJob. withLockedValue { $0 } , false )
819
+ XCTAssertEqual ( didRunNoneCancelledJob. withLockedValue { $0 } , true )
807
820
}
808
821
}
0 commit comments