From b181344f289725fbc2024fe82291e3094a775505 Mon Sep 17 00:00:00 2001 From: Madhas Date: Wed, 16 May 2018 15:52:40 +0300 Subject: [PATCH] tests updated --- Tests/NetworkServiceTests.swift | 81 +++++++++++++++++++++++++++------ 1 file changed, 66 insertions(+), 15 deletions(-) diff --git a/Tests/NetworkServiceTests.swift b/Tests/NetworkServiceTests.swift index b0f0f989..07fb3c5c 100644 --- a/Tests/NetworkServiceTests.swift +++ b/Tests/NetworkServiceTests.swift @@ -46,20 +46,19 @@ final class NetworkServiceTests: XCTestCase { func testModelRequest() { // given - let expectedModel = Post(userId: 1, - postId: 1, - title: "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", - body: "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto") + let expectedModel = Album(userId: 1, + albumId: 1, + title: "quidem molestiae enim") - var receivedModel: Post? + var receivedModel: Album? var error: Error? let requestCompletedExpectation = expectation(description: "Request completed") - let apiRequest = ApiRequestParameters(url: "https://jsonplaceholder.typicode.com/posts/1", + let apiRequest = ApiRequestParameters(url: "https://jsonplaceholder.typicode.com/albums/1", headers: ["Content-Type": "application/json"]) // when networkService.rxRequest(with: apiRequest) - .subscribe(onNext: { (_, model: Post) in + .subscribe(onNext: { (_, model: Album) in receivedModel = model requestCompletedExpectation.fulfill() }, onError: { @@ -75,23 +74,49 @@ final class NetworkServiceTests: XCTestCase { XCTAssertNotNil(receivedModel) XCTAssertEqual(receivedModel, expectedModel) } + + func testModelArrayRequest() { + // given + var response: [Album]? + var error: Error? + let requestCompletedExpectation = expectation(description: "Request completed") + let apiRequest = ApiRequestParameters(url: "https://jsonplaceholder.typicode.com/albums", + headers: ["Content-Type": "application/json"]) + + //when + networkService.rxRequest(with: apiRequest) + .subscribe(onNext: { ( _, model: [Album]) in + response = model + requestCompletedExpectation.fulfill() + }, onError: { + error = $0 + requestCompletedExpectation.fulfill() + }) + .disposed(by: disposeBag) + + waitForExpectations(timeout: 20, handler: nil) + + // then + XCTAssertNil(error) + XCTAssertNotNil(response) + XCTAssert(response?.count == 100) + } func testObservableModelRequest() { // given - let expectedModel = ObservableMappablePost(userId: 1, - postId: 1, - title: "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", - body: "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto") + let expectedModel = Album(userId: 1, + albumId: 1, + title: "quidem molestiae enim") - var receivedModel: ObservableMappablePost? + var receivedModel: Album? var error: Error? let requestCompletedExpectation = expectation(description: "Request completed") - let apiRequest = ApiRequestParameters(url: "https://jsonplaceholder.typicode.com/posts/1", + let apiRequest = ApiRequestParameters(url: "https://jsonplaceholder.typicode.com/albums/1", headers: ["Content-Type": "application/json"]) // when networkService.rxRequest(with: apiRequest) - .subscribe(onNext: { (_, model: ObservableMappablePost) in + .subscribe(onNext: { (_, model: Album) in receivedModel = model requestCompletedExpectation.fulfill() }, onError: { @@ -107,5 +132,31 @@ final class NetworkServiceTests: XCTestCase { XCTAssertNotNil(receivedModel) XCTAssertEqual(receivedModel, expectedModel) } - + + func testObservableModelArrayRequest() { + // given + var receivedModel: AlbumContainer? + var error: Error? + let requestCompletedExpectation = expectation(description: "Request completed") + let apiRequest = ApiRequestParameters(url: "https://jsonplaceholder.typicode.com/albums", + headers: ["Content-Type": "application/json"]) + + // when + networkService.rxRequest(with: apiRequest) + .subscribe(onNext: { (_, model: AlbumContainer) in + receivedModel = model + requestCompletedExpectation.fulfill() + }, onError: { + error = $0 + requestCompletedExpectation.fulfill() + }) + .disposed(by: disposeBag) + + waitForExpectations(timeout: 20, handler: nil) + + //then + XCTAssertNil(error) + XCTAssertNotNil(receivedModel) + XCTAssert(receivedModel?.albums.count == 100) + } }