-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathunit_QueueApiTests.swift
156 lines (147 loc) · 6.11 KB
/
unit_QueueApiTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
//
// unit_QueueApiTests.swift
// YM-API
//
// Created by Developer on 01.09.2021.
//
import XCTest
#if canImport(YmuzApiMac)
@testable import YmuzApiMac
#endif
#if canImport(YmuzApi)
@testable import YmuzApi
#endif
class unit_QueueApiTests: XCTestCase {
var client: YMClient!
var device: YMDevice {get {return TestConstants.device}}
var apiLang: ApiLanguage {get {return TestConstants.apiLang}}
var token: String {get {return TestCredentials.token}}
var xToken: String {get {return TestCredentials.xToken}}
var uid: Int {get {return TestCredentials.uid}}
override func setUp() {
client = YMClient.initialize(device: device, lang: apiLang, uid: uid, token: token, xToken: xToken)
}
override func tearDown() {
client = nil
}
func testQueuesListResponse() {
let exp = self.expectation(description: "Request time-out expectation")
client.getQueuesList(device: device) { result in
do {
let list = try result.get()
if (list.queues.count > 0) {
XCTAssertTrue(!list.queues[0].id.isEmpty, "Queue ID is empty")
}
} catch {
print(error)
XCTAssert(false, "Empty queues list object: " + error.localizedDescription)
}
exp.fulfill()
}
waitForExpectations(timeout: 5) { error in
if let g_error = error
{
print(g_error)
XCTAssert(false, "Timeout error: " + g_error.localizedDescription)
}
}
}
func testQueueDataResponse() {
let exp = self.expectation(description: "Request time-out expectation")
client.getQueuesList(device: device) { result in
do {
let list = try result.get()
XCTAssertTrue(list.queues.count > 0, "Queues list is empty. Unable to test queue fetching data")
let queueId = list.queues[0].id
self.client.getQueueData(queueId: queueId) { result2 in
do {
let queue = try result2.get()
XCTAssertTrue(queue.id?.compare(queueId) == .orderedSame, "Response queue ID mismatch")
XCTAssertNotNil(queue.context, "Queue context is nil")
XCTAssertTrue(queue.tracks.count > 0, "Queue tracks' array is empty")
} catch {
print(error)
XCTAssert(false, "Empty queue object: " + error.localizedDescription)
}
exp.fulfill()
}
} catch {
print(error)
XCTAssert(false, "Empty queues list object: " + error.localizedDescription)
}
}
waitForExpectations(timeout: 5) { error in
if let g_error = error
{
print(g_error)
XCTAssert(false, "Timeout error: " + g_error.localizedDescription)
}
}
}
func testCreateQueueResponse() {
let exp = self.expectation(description: "Request time-out expectation")
let context = QueueContext(type: "radio", id: "user:onyourwave", description: "NonExistPlaylist")
let queue = Queue.initializeNewQueue(context: context, tracks: [])
client.createQueue(queue: queue, device: device) { result in
do {
let newQueue = try result.get()
XCTAssertNotNil(newQueue.id, "Queue ID is nil")
XCTAssertTrue(newQueue.currIndex == 0, "Queue index not equal to 0")
} catch {
print(error)
XCTAssert(false, "Empty queues list object: " + error.localizedDescription)
}
exp.fulfill()
}
waitForExpectations(timeout: 5) { error in
if let g_error = error
{
print(g_error)
XCTAssert(false, "Timeout error: " + g_error.localizedDescription)
}
}
}
func testQueueIndexSetResponse() {
let exp = self.expectation(description: "Request time-out expectation")
client.getQueuesList(device: device) { result in
do {
let list = try result.get()
XCTAssertTrue(list.queues.count > 0, "Queues list is empty. Unable to test queue fetching data")
let queueId = list.queues[0].id
self.client.getQueueData(queueId: queueId) { result2 in
do {
let queue = try result2.get()
XCTAssertTrue(queue.id?.compare(queueId) == .orderedSame, "Response queue ID mismatch")
XCTAssertNotNil(queue.context, "Queue context is nil")
XCTAssertTrue(queue.tracks.count > 0, "Queue tracks' array is empty")
let currIndex = queue.currIndex
self.client.setQueueIndex(queueId: queueId, newIndex: currIndex + 1, device: self.device) {
result3 in
do {
let status = try result3.get()
XCTAssertTrue(status, "Queue updating index fail")
} catch {
print(error)
XCTAssert(false, "Queue updating index fail: " + error.localizedDescription)
}
exp.fulfill()
}
} catch {
print(error)
XCTAssert(false, "Empty queue object: " + error.localizedDescription)
}
}
} catch {
print(error)
XCTAssert(false, "Empty queues list object: " + error.localizedDescription)
}
}
waitForExpectations(timeout: 5) { error in
if let g_error = error
{
print(g_error)
XCTAssert(false, "Timeout error: " + g_error.localizedDescription)
}
}
}
}