Emcee
52 строки · 1.8 Кб
1import BalancingBucketQueue
2import BucketQueueModels
3import BucketQueueTestHelpers
4import QueueModels
5import QueueModelsTestHelpers
6import Foundation
7import WorkerCapabilitiesModels
8import XCTest
9
10final class MultipleQueuesDequeueableBucketSourceTests: XCTestCase {
11lazy var multipleQueuesContainer = MultipleQueuesContainer()
12lazy var dequeueableBucketSourceProvider = FakeDequeueableBucketSourceProvider()
13lazy var multipleQueuesDequeueableBucketSource = MultipleQueuesDequeueableBucketSource(
14dequeueableBucketSourceProvider: dequeueableBucketSourceProvider,
15multipleQueuesContainer: multipleQueuesContainer
16)
17
18func test___nothing_to_dequeue() {
19dequeueableBucketSourceProvider.fakeDequeueableBucketSource.result = { _, _ in
20nil
21}
22
23let dequeuedBucket = multipleQueuesDequeueableBucketSource.dequeueBucket(
24workerCapabilities: [],
25workerId: "worker"
26)
27XCTAssertNil(dequeuedBucket)
28}
29
30func test___dequeueing() {
31let expectedDequeuedBucket = DequeuedBucket(
32enqueuedBucket: EnqueuedBucket(
33bucket: BucketFixtures().bucket(),
34enqueueTimestamp: Date(),
35uniqueIdentifier: "id"
36),
37workerId: "worker"
38)
39dequeueableBucketSourceProvider.fakeDequeueableBucketSource.result = { _, _ in
40expectedDequeuedBucket
41}
42
43multipleQueuesContainer.add(runningJobQueue: createJobQueue())
44
45let dequeuedBucket = multipleQueuesDequeueableBucketSource.dequeueBucket(
46workerCapabilities: [],
47workerId: "worker"
48)
49
50XCTAssertEqual(dequeuedBucket, expectedDequeuedBucket)
51}
52}
53