Emcee
77 строк · 2.6 Кб
1import BalancingBucketQueue
2import BucketQueueTestHelpers
3import CommonTestModels
4import Foundation
5import QueueModels
6import TestHelpers
7import XCTest
8
9final class MultipleQueuesJobStateProviderTests: XCTestCase {
10lazy var container = MultipleQueuesContainer()
11lazy var statefulBucketQueueProvider = FakeStatefulBucketQueueProvider()
12lazy var multipleQueuesJobStateProvider = MultipleQueuesJobStateProvider(
13multipleQueuesContainer: container,
14statefulBucketQueueProvider: statefulBucketQueueProvider
15)
16
17func test___ongoing_group_ids() {
18container.track(jobGroup: createJobGroup(jobGroupId: "groupId1"))
19container.track(jobGroup: createJobGroup(jobGroupId: "groupId2"))
20
21XCTAssertEqual(
22multipleQueuesJobStateProvider.ongoingJobGroupIds,
23[
24JobGroupId("groupId1"),
25JobGroupId("groupId2"),
26]
27)
28}
29
30func test___ongoing_jon_ids() {
31container.add(runningJobQueue: createJobQueue(job: createJob(jobId: "jobId1")))
32container.add(runningJobQueue: createJobQueue(job: createJob(jobId: "jobId2")))
33
34XCTAssertEqual(
35multipleQueuesJobStateProvider.ongoingJobIds,
36[
37JobId("jobId1"),
38JobId("jobId2"),
39]
40)
41}
42
43func test___job_state___for_running_job() {
44statefulBucketQueueProvider.fakeStatefulBucketQueue.runningQueueState = RunningQueueState(
45enqueuedBucketCount: 1,
46enqueuedTests: [TestName(className: "class", methodName: "test")],
47dequeuedBucketCount: 2,
48dequeuedTests: [:]
49)
50
51container.add(runningJobQueue: createJobQueue(job: createJob(jobId: "jobId")))
52
53assert {
54try multipleQueuesJobStateProvider.state(jobId: "jobId")
55} equals: {
56JobState(
57jobId: "jobId",
58queueState: QueueState.running(statefulBucketQueueProvider.fakeStatefulBucketQueue.runningQueueState)
59)
60}
61}
62
63func test___job_state___for_deleted_job() {
64container.add(deletedJobQueues: [createJobQueue(job: createJob(jobId: "jobId"))])
65
66XCTAssertEqual(
67try multipleQueuesJobStateProvider.state(jobId: "jobId"),
68JobState(jobId: "jobId", queueState: QueueState.deleted)
69)
70}
71
72func test___job_state___for_non_existing_job___throws() {
73assertThrows {
74try multipleQueuesJobStateProvider.state(jobId: "jobId")
75}
76}
77}
78
79