Emcee

Форк
0
/
MultipleQueuesDequeueableBucketSourceTests.swift 
52 строки · 1.8 Кб
1
import BalancingBucketQueue
2
import BucketQueueModels
3
import BucketQueueTestHelpers
4
import QueueModels
5
import QueueModelsTestHelpers
6
import Foundation
7
import WorkerCapabilitiesModels
8
import XCTest
9

10
final class MultipleQueuesDequeueableBucketSourceTests: XCTestCase {
11
    lazy var multipleQueuesContainer = MultipleQueuesContainer()
12
    lazy var dequeueableBucketSourceProvider = FakeDequeueableBucketSourceProvider()
13
    lazy var multipleQueuesDequeueableBucketSource = MultipleQueuesDequeueableBucketSource(
14
        dequeueableBucketSourceProvider: dequeueableBucketSourceProvider,
15
        multipleQueuesContainer: multipleQueuesContainer
16
    )
17
    
18
    func test___nothing_to_dequeue() {
19
        dequeueableBucketSourceProvider.fakeDequeueableBucketSource.result = { _, _ in
20
            nil
21
        }
22
        
23
        let dequeuedBucket = multipleQueuesDequeueableBucketSource.dequeueBucket(
24
            workerCapabilities: [],
25
            workerId: "worker"
26
        )
27
        XCTAssertNil(dequeuedBucket)
28
    }
29
    
30
    func test___dequeueing() {
31
        let expectedDequeuedBucket = DequeuedBucket(
32
            enqueuedBucket: EnqueuedBucket(
33
                bucket: BucketFixtures().bucket(),
34
                enqueueTimestamp: Date(),
35
                uniqueIdentifier: "id"
36
            ),
37
            workerId: "worker"
38
        )
39
        dequeueableBucketSourceProvider.fakeDequeueableBucketSource.result = { _, _ in
40
            expectedDequeuedBucket
41
        }
42
        
43
        multipleQueuesContainer.add(runningJobQueue: createJobQueue())
44
        
45
        let dequeuedBucket = multipleQueuesDequeueableBucketSource.dequeueBucket(
46
            workerCapabilities: [],
47
            workerId: "worker"
48
        )
49
        
50
        XCTAssertEqual(dequeuedBucket, expectedDequeuedBucket)
51
    }
52
}
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.