提交 d29f30f2 编写于 作者: C Christian Noon

Added tests around response data, string and json serializer result behavior.

上级 d58446ed
......@@ -24,11 +24,199 @@ import Alamofire
import Foundation
import XCTest
class JSONResponseTestCase: BaseTestCase {
func testGETRequestJSONResponse() {
class ResponseDataTestCase: BaseTestCase {
func testThatResponseDataReturnsSuccessResultWithValidData() {
// Given
let URLString = "https://httpbin.org/get"
let expectation = expectationWithDescription("\(URLString)")
let expectation = expectationWithDescription("request should succeed")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
var result: Result<NSData>!
// When
Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseData { responseRequest, responseResponse, responseResult in
request = responseRequest
response = responseResponse
result = responseResult
expectation.fulfill()
}
waitForExpectationsWithTimeout(defaultTimeout, handler: nil)
// Then
XCTAssertNotNil(request, "request should not be nil")
XCTAssertNotNil(response, "response should not be nil")
XCTAssertTrue(result.isSuccess, "result should be success")
XCTAssertNotNil(result.value, "result value should not be nil")
XCTAssertNil(result.data, "result data should be nil")
XCTAssertNil(result.error, "result error should be nil")
}
func testThatResponseDataReturnsFailureResultWithOptionalDataAndError() {
// Given
let URLString = "https://invalid-url-here.org/this/does/not/exist"
let expectation = expectationWithDescription("request should fail with 404")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
var result: Result<NSData>!
// When
Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseData { responseRequest, responseResponse, responseResult in
request = responseRequest
response = responseResponse
result = responseResult
expectation.fulfill()
}
waitForExpectationsWithTimeout(defaultTimeout, handler: nil)
// Then
XCTAssertNotNil(request, "request should not be nil")
XCTAssertNil(response, "response should be nil")
XCTAssertTrue(result.isFailure, "result should be a failure")
XCTAssertNil(result.value, "result value should not be nil")
XCTAssertNotNil(result.data, "result data should be nil")
XCTAssertNotNil(result.error, "result error should be nil")
}
}
// MARK: -
class ResponseStringTestCase: BaseTestCase {
func testThatResponseStringReturnsSuccessResultWithValidString() {
// Given
let URLString = "https://httpbin.org/get"
let expectation = expectationWithDescription("request should succeed")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
var result: Result<String>!
// When
Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseString { responseRequest, responseResponse, responseResult in
request = responseRequest
response = responseResponse
result = responseResult
expectation.fulfill()
}
waitForExpectationsWithTimeout(defaultTimeout, handler: nil)
// Then
XCTAssertNotNil(request, "request should not be nil")
XCTAssertNotNil(response, "response should not be nil")
XCTAssertTrue(result.isSuccess, "result should be success")
XCTAssertNotNil(result.value, "result value should not be nil")
XCTAssertNil(result.data, "result data should be nil")
XCTAssertNil(result.error, "result error should be nil")
}
func testThatResponseStringReturnsFailureResultWithOptionalDataAndError() {
// Given
let URLString = "https://invalid-url-here.org/this/does/not/exist"
let expectation = expectationWithDescription("request should fail with 404")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
var result: Result<String>!
// When
Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseString { responseRequest, responseResponse, responseResult in
request = responseRequest
response = responseResponse
result = responseResult
expectation.fulfill()
}
waitForExpectationsWithTimeout(defaultTimeout, handler: nil)
// Then
XCTAssertNotNil(request, "request should not be nil")
XCTAssertNil(response, "response should be nil")
XCTAssertTrue(result.isFailure, "result should be a failure")
XCTAssertNil(result.value, "result value should not be nil")
XCTAssertNotNil(result.data, "result data should be nil")
XCTAssertNotNil(result.error, "result error should be nil")
}
}
// MARK: -
class ResponseJSONTestCase: BaseTestCase {
func testThatResponseJSONReturnsSuccessResultWithValidJSON() {
// Given
let URLString = "https://httpbin.org/get"
let expectation = expectationWithDescription("request should succeed")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
var result: Result<AnyObject>!
// When
Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseJSON { responseRequest, responseResponse, responseResult in
request = responseRequest
response = responseResponse
result = responseResult
expectation.fulfill()
}
waitForExpectationsWithTimeout(defaultTimeout, handler: nil)
// Then
XCTAssertNotNil(request, "request should not be nil")
XCTAssertNotNil(response, "response should not be nil")
XCTAssertTrue(result.isSuccess, "result should be success")
XCTAssertNotNil(result.value, "result value should not be nil")
XCTAssertNil(result.data, "result data should be nil")
XCTAssertNil(result.error, "result error should be nil")
}
func testThatResponseStringReturnsFailureResultWithOptionalDataAndError() {
// Given
let URLString = "https://invalid-url-here.org/this/does/not/exist"
let expectation = expectationWithDescription("request should fail with 404")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
var result: Result<AnyObject>!
// When
Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseJSON { responseRequest, responseResponse, responseResult in
request = responseRequest
response = responseResponse
result = responseResult
expectation.fulfill()
}
waitForExpectationsWithTimeout(defaultTimeout, handler: nil)
// Then
XCTAssertNotNil(request, "request should not be nil")
XCTAssertNil(response, "response should be nil")
XCTAssertTrue(result.isFailure, "result should be a failure")
XCTAssertNil(result.value, "result value should not be nil")
XCTAssertNotNil(result.data, "result data should be nil")
XCTAssertNotNil(result.error, "result error should be nil")
}
func testThatResponseJSONReturnsSuccessResultForGETRequest() {
// Given
let URLString = "https://httpbin.org/get"
let expectation = expectationWithDescription("request should succeed")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
......@@ -60,10 +248,10 @@ class JSONResponseTestCase: BaseTestCase {
}
}
func testPOSTRequestJSONResponse() {
func testThatResponseJSONReturnsSuccessResultForPOSTRequest() {
// Given
let URLString = "https://httpbin.org/post"
let expectation = expectationWithDescription("\(URLString)")
let expectation = expectationWithDescription("request should succeed")
var request: NSURLRequest?
var response: NSHTTPURLResponse?
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册