Emcee
104 строки · 3.6 Кб
1import BalancingBucketQueue
2import BucketQueueModels
3import BucketQueueTestHelpers
4import CommonTestModels
5import DateProviderTestHelpers
6import MetricsExtensions
7import QueueModels
8import XCTest
9
10final class MultipleQueuesStatefulBucketQueueTests: XCTestCase {
11lazy var container = MultipleQueuesContainer()
12lazy var dateProvider = DateProviderFixture()
13lazy var statefulBucketQueueProvider = FakeStatefulBucketQueueProvider()
14lazy var stateProvider = MultipleQueuesStatefulBucketQueue(
15multipleQueuesContainer: container,
16statefulBucketQueueProvider: statefulBucketQueueProvider
17)
18
19func test___empty_container() {
20XCTAssertEqual(
21stateProvider.runningQueueState,
22RunningQueueState(
23enqueuedBucketCount: 0,
24enqueuedTests: [],
25dequeuedBucketCount: 0,
26dequeuedTests: [:]
27)
28)
29}
30
31func test___single_job() {
32let runningQueueState = RunningQueueState(
33enqueuedBucketCount: 50,
34enqueuedTests: [TestName(className: "Enqueued", methodName: "test")],
35dequeuedBucketCount: 25,
36dequeuedTests: ["worker": [TestName(className: "Dequeued", methodName: "test")]]
37)
38statefulBucketQueueProvider.fakeStatefulBucketQueue.runningQueueState = runningQueueState
39container.add(runningJobQueue: BalancingBucketQueueTests.createJobQueue())
40
41XCTAssertEqual(
42stateProvider.runningQueueState,
43runningQueueState
44)
45}
46
47func test___multiple_jobs() {
48var states: [RunningQueueState] = [
49RunningQueueState(
50enqueuedBucketCount: 50,
51enqueuedTests: [
52TestName(className: "Enqueued1", methodName: "test1"),
53],
54dequeuedBucketCount: 25,
55dequeuedTests: [
56"worker1": [
57TestName(className: "Dequeued1", methodName: "test1"),
58],
59]
60),
61RunningQueueState(
62enqueuedBucketCount: 10,
63enqueuedTests: [
64TestName(className: "Enqueued2", methodName: "test2"),
65],
66dequeuedBucketCount: 7,
67dequeuedTests: [
68"worker2": [
69TestName(className: "Dequeued2", methodName: "test2"),
70],
71]
72),
73]
74
75statefulBucketQueueProvider.fakeStatefulBucketQueue.resultProvider = {
76let result = states[0]
77states.removeFirst()
78return result
79}
80
81container.add(runningJobQueue: BalancingBucketQueueTests.createJobQueue())
82container.add(runningJobQueue: BalancingBucketQueueTests.createJobQueue())
83
84XCTAssertEqual(
85stateProvider.runningQueueState,
86RunningQueueState(
87enqueuedBucketCount: 60,
88enqueuedTests: [
89TestName(className: "Enqueued1", methodName: "test1"),
90TestName(className: "Enqueued2", methodName: "test2"),
91],
92dequeuedBucketCount: 32,
93dequeuedTests: [
94"worker1": [
95TestName(className: "Dequeued1", methodName: "test1"),
96],
97"worker2": [
98TestName(className: "Dequeued2", methodName: "test2"),
99],
100]
101)
102)
103}
104}
105
106