Skip to content

Commit 0b75a6b

Browse files
committed
Improved test suite
1 parent fe1c332 commit 0b75a6b

File tree

4 files changed

+197
-0
lines changed

4 files changed

+197
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
@testable import Mini
2+
@testable import MiniTasks
3+
import Nimble
24
import XCTest
35

46
final class ActionTests: XCTestCase {
7+
struct TasksTestEmptyAction: MiniTasks.EmptyAction {
8+
let task: AnyTask
9+
}
10+
511
func test_action_tag() {
612
let action = SetCounterAction(counter: 1)
713

814
XCTAssertEqual(String(describing: type(of: action)), SetCounterAction.tag)
915
}
16+
17+
#if !SWIFT_PACKAGE
18+
func test_empty_action_fatal_error_initializer() {
19+
expect {
20+
_ = TasksTestEmptyAction(task: .success(), payload: nil)
21+
}.to(throwAssertion())
22+
}
23+
#endif
1024
}

Tests/MiniSwiftTests/RxTests/PrimitiveSequenceTypeTests.swift

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,19 @@ final class PrimitiveSequenceTypeTests: XCTestCase {
119119
).toEventually(be(1))
120120
}
121121

122+
func test_promises_completable_action_dispatch_fill_on_error() {
123+
Single
124+
.error(Error.dummy)
125+
.dispatch(action: PromisesTestCompletableAction.self, on: dispatcher, fillOnError: 1)
126+
.disposed(by: disposeBag)
127+
128+
expect(
129+
self.testMiddleware.actions(of: PromisesTestCompletableAction.self).count
130+
).toEventually(be(1))
131+
132+
expect(self.testMiddleware.actions(of: PromisesTestCompletableAction.self).first?.promise.value) == 1
133+
}
134+
122135
func test_promises_completable_action_dispatch_error() {
123136
Single
124137
.error(Error.dummy)
@@ -150,6 +163,20 @@ final class PrimitiveSequenceTypeTests: XCTestCase {
150163
).toEventually(beTrue())
151164
}
152165

166+
func test_promises_keyed_completable_action_dispatch_fill_on_error() {
167+
Single
168+
.error(Error.dummy)
169+
.dispatch(action: PromisesTestKeyedCompletableAction.self, key: "hello", on: dispatcher, fillOnError: 1)
170+
.disposed(by: disposeBag)
171+
172+
expect(
173+
self.testMiddleware
174+
.action(of: PromisesTestKeyedCompletableAction.self) {
175+
$0.promise == ["hello": .value(1)]
176+
}
177+
).toEventually(beTrue())
178+
}
179+
153180
func test_promises_keyed_completable_action_dispatch_error() {
154181
Single
155182
.error(Error.dummy)
@@ -174,6 +201,46 @@ final class PrimitiveSequenceTypeTests: XCTestCase {
174201
expect(action).to(equalAction(PromisesTestCompletableAction(promise: .value(1))))
175202
}
176203

204+
func test_promises_completable_action_action_fill_on_error() throws {
205+
guard let action =
206+
try Single
207+
.error(Error.dummy)
208+
.action(PromisesTestCompletableAction.self, fillOnError: 1)
209+
.toBlocking(timeout: 5.0).first() else { fatalError() }
210+
211+
expect(action).to(equalAction(PromisesTestCompletableAction(promise: .value(1))))
212+
}
213+
214+
func test_promises_completable_action_action_error() throws {
215+
guard let action =
216+
try Single
217+
.error(Error.dummy)
218+
.action(PromisesTestCompletableAction.self)
219+
.toBlocking(timeout: 5.0).first() else { fatalError() }
220+
221+
expect(action).to(equalAction(PromisesTestCompletableAction(promise: .error(Error.dummy))))
222+
}
223+
224+
func test_promises_empty_action_action() throws {
225+
guard let action =
226+
try Completable
227+
.empty()
228+
.action(PromisesTestEmptyAction.self)
229+
.toBlocking(timeout: 5.0).first() else { fatalError() }
230+
231+
expect(action).to(equalAction(PromisesTestEmptyAction(promise: .empty())))
232+
}
233+
234+
func test_promises_empty_action_action_error() throws {
235+
guard let action =
236+
try Completable
237+
.error(Error.dummy)
238+
.action(PromisesTestEmptyAction.self)
239+
.toBlocking(timeout: 5.0).first() else { fatalError() }
240+
241+
expect(action).to(equalAction(PromisesTestEmptyAction(promise: .error(Error.dummy))))
242+
}
243+
177244
func test_promises_empty_action_dispatch() {
178245
Completable
179246
.empty()
@@ -217,6 +284,19 @@ final class PrimitiveSequenceTypeTests: XCTestCase {
217284
).toEventually(be(1))
218285
}
219286

287+
func test_tasks_completable_action_dispatch_fill_on_error() {
288+
Single
289+
.error(Error.dummy)
290+
.dispatch(action: TasksTestCompletableAction.self, on: dispatcher, fillOnError: 1)
291+
.disposed(by: disposeBag)
292+
293+
expect(
294+
self.testMiddleware.actions(of: TasksTestCompletableAction.self).count
295+
).toEventually(be(1))
296+
297+
expect(self.testMiddleware.actions(of: TasksTestCompletableAction.self).first?.payload) == 1
298+
}
299+
220300
func test_tasks_completable_action_dispatch_error() {
221301
Single
222302
.error(Error.dummy)
@@ -248,6 +328,20 @@ final class PrimitiveSequenceTypeTests: XCTestCase {
248328
).toEventually(beTrue())
249329
}
250330

331+
func test_tasks_keyed_completable_action_dispatch_fill_on_error() {
332+
Single
333+
.error(Error.dummy)
334+
.dispatch(action: TasksTestKeyedCompletableAction.self, key: "hello", on: dispatcher, fillOnError: 1)
335+
.disposed(by: disposeBag)
336+
337+
expect(
338+
self.testMiddleware
339+
.action(of: TasksTestKeyedCompletableAction.self) {
340+
$0.payload == 1 && $0.key == "hello" && $0.task.status == .success
341+
}
342+
).toEventually(beTrue())
343+
}
344+
251345
func test_tasks_keyed_completable_action_dispatch_error() {
252346
Single
253347
.error(Error.dummy)
@@ -272,6 +366,46 @@ final class PrimitiveSequenceTypeTests: XCTestCase {
272366
expect(action).to(equalAction(TasksTestCompletableAction(task: .success(), payload: 1)))
273367
}
274368

369+
func test_tasks_completable_action_action_fill_on_error() throws {
370+
guard let action =
371+
try Single
372+
.error(Error.dummy)
373+
.action(TasksTestCompletableAction.self, fillOnError: 1)
374+
.toBlocking(timeout: 5.0).first() else { fatalError() }
375+
376+
expect(action).to(equalAction(TasksTestCompletableAction(task: .success(), payload: 1)))
377+
}
378+
379+
func test_tasks_completable_action_action_error() throws {
380+
guard let action =
381+
try Single
382+
.error(Error.dummy)
383+
.action(TasksTestCompletableAction.self)
384+
.toBlocking(timeout: 5.0).first() else { fatalError() }
385+
386+
expect(action).to(equalAction(TasksTestCompletableAction(task: .failure(Error.dummy), payload: nil)))
387+
}
388+
389+
func test_tasks_empty_action_action() throws {
390+
guard let action =
391+
try Completable
392+
.empty()
393+
.action(TasksTestEmptyAction.self)
394+
.toBlocking(timeout: 5.0).first() else { fatalError() }
395+
396+
expect(action).to(equalAction(TasksTestEmptyAction(task: .success())))
397+
}
398+
399+
func test_tasks_empty_action_action_error() throws {
400+
guard let action =
401+
try Completable
402+
.error(Error.dummy)
403+
.action(TasksTestEmptyAction.self)
404+
.toBlocking(timeout: 5.0).first() else { fatalError() }
405+
406+
expect(action).to(equalAction(TasksTestEmptyAction(task: .failure(Error.dummy))))
407+
}
408+
275409
func test_tasks_empty_action_dispatch() {
276410
Completable
277411
.empty()

Tests/MiniSwiftTests/TaskTests.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ import XCTest
44
class TaskTests: XCTestCase {
55
let error = NSError(domain: #function, code: -1, userInfo: nil)
66

7+
func test_check_states_for_idle_task() {
8+
let task = AnyTask.idle()
9+
10+
XCTAssertEqual(task.status, .idle)
11+
XCTAssertNil(task.error)
12+
13+
XCTAssertFalse(task.isRunning)
14+
XCTAssertFalse(task.isFailure)
15+
XCTAssertFalse(task.isCompleted)
16+
XCTAssertFalse(task.isSuccessful)
17+
}
18+
719
func test_check_states_for_running_task() {
820
let task = AnyTask.running()
921

@@ -28,6 +40,19 @@ class TaskTests: XCTestCase {
2840
XCTAssertTrue(task.isSuccessful)
2941
}
3042

43+
func test_check_states_for_success_typed_task() {
44+
let task: TypedTask<Int> = AnyTask.success(1)
45+
46+
XCTAssertEqual(task.status, .success)
47+
XCTAssertNil(task.error)
48+
49+
XCTAssertFalse(task.isRunning)
50+
XCTAssertFalse(task.isFailure)
51+
XCTAssertTrue(task.isCompleted)
52+
XCTAssertTrue(task.isSuccessful)
53+
XCTAssertEqual(task.data, 1)
54+
}
55+
3156
func test_check_states_for_failure_task() {
3257
let task = AnyTask.failure(error)
3358

@@ -39,4 +64,13 @@ class TaskTests: XCTestCase {
3964
XCTAssertTrue(task.isCompleted)
4065
XCTAssertFalse(task.isSuccessful)
4166
}
67+
68+
func test_task_properties() {
69+
let task: AnyTask = .idle()
70+
let date = Date()
71+
task.date = date
72+
73+
XCTAssertEqual(task.date as Date?, date)
74+
XCTAssertNil(task.not_a_property as Int?)
75+
}
4276
}

Tests/MiniSwiftTests/XCTestManifests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,20 +71,32 @@
7171
// `swift test --generate-linuxmain`
7272
// to regenerate.
7373
static let __allTests__PrimitiveSequenceTypeTests = [
74+
("test_promises_completable_action_action_error", test_promises_completable_action_action_error),
75+
("test_promises_completable_action_action_fill_on_error", test_promises_completable_action_action_fill_on_error),
7476
("test_promises_completable_action_action", test_promises_completable_action_action),
7577
("test_promises_completable_action_dispatch", test_promises_completable_action_dispatch),
7678
("test_promises_completable_action_dispatch_error", test_promises_completable_action_dispatch_error),
79+
("test_promises_completable_action_dispatch_fill_on_error", test_promises_completable_action_dispatch_fill_on_error),
80+
("test_promises_empty_action_action_error", test_promises_empty_action_action_error),
81+
("test_promises_empty_action_action", test_promises_empty_action_action),
7782
("test_promises_empty_action_dispatch", test_promises_empty_action_dispatch),
7883
("test_promises_empty_action_dispatch_error", test_promises_empty_action_dispatch_error),
7984
("test_promises_keyed_completable_action_dispatch", test_promises_keyed_completable_action_dispatch),
8085
("test_promises_keyed_completable_action_dispatch_error", test_promises_keyed_completable_action_dispatch_error),
86+
("test_promises_keyed_completable_action_dispatch_fill_on_error", test_promises_keyed_completable_action_dispatch_fill_on_error),
87+
("test_tasks_completable_action_action_error", test_tasks_completable_action_action_error),
88+
("test_tasks_completable_action_action_fill_on_error", test_tasks_completable_action_action_fill_on_error),
8189
("test_tasks_completable_action_action", test_tasks_completable_action_action),
8290
("test_tasks_completable_action_dispatch", test_tasks_completable_action_dispatch),
8391
("test_tasks_completable_action_dispatch_error", test_tasks_completable_action_dispatch_error),
92+
("test_tasks_completable_action_dispatch_fill_on_error", test_tasks_completable_action_dispatch_fill_on_error),
93+
("test_tasks_empty_action_action_error", test_tasks_empty_action_action_error),
94+
("test_tasks_empty_action_action", test_tasks_empty_action_action),
8495
("test_tasks_empty_action_dispatch", test_tasks_empty_action_dispatch),
8596
("test_tasks_empty_action_dispatch_error", test_tasks_empty_action_dispatch_error),
8697
("test_tasks_keyed_completable_action_dispatch", test_tasks_keyed_completable_action_dispatch),
8798
("test_tasks_keyed_completable_action_dispatch_error", test_tasks_keyed_completable_action_dispatch_error),
99+
("test_tasks_keyed_completable_action_dispatch_fill_on_error", test_tasks_keyed_completable_action_dispatch_fill_on_error),
88100
]
89101
}
90102

@@ -130,8 +142,11 @@
130142
// to regenerate.
131143
static let __allTests__TaskTests = [
132144
("test_check_states_for_failure_task", test_check_states_for_failure_task),
145+
("test_check_states_for_idle_task", test_check_states_for_idle_task),
133146
("test_check_states_for_running_task", test_check_states_for_running_task),
134147
("test_check_states_for_success_task", test_check_states_for_success_task),
148+
("test_check_states_for_success_typed_task", test_check_states_for_success_typed_task),
149+
("test_task_properties", test_task_properties),
135150
]
136151
}
137152

0 commit comments

Comments
 (0)