-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathURLEncoderTests.swift
49 lines (36 loc) · 1.58 KB
/
URLEncoderTests.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
//
// URLEncoderTests.swift
// NetworkStoreTests
//
// Created by MAC on 21/01/2021.
//
import XCTest
@testable import Hotels_Guide
class URLEncoderTests: XCTestCase {
override class func setUp() {
}
override class func tearDown() {
}
func testEncodeParametersFunction_ShouldNotThrowWithEmptyParamters(){
let request = try! URLRequestBuilder(with: "https://api.github.com", path: "users/KerollosNabil").build()
let parameters:[String:String] = [:]
let requestWithParam = try? URLEncoder.encodeParameters(for: request, with: parameters)
XCTAssertNotNil(requestWithParam)
XCTAssertEqual(requestWithParam?.url, request.url)
XCTAssertNoThrow(try URLEncoder.encodeParameters(for: request, with: parameters))
}
func testEncodeParametersFunction_ShouldAddParametersToTheRequestObject(){
let request = try! URLRequestBuilder(with: "https://api.github.com", path: "users/KerollosNabil").build()
let parameters = [
"sort_by": "votes_count",
"order": "desc",
"per_page": "20",
]
let requestWithParam = try? URLEncoder.encodeParameters(for: request, with: parameters)
XCTAssertNotNil(requestWithParam)
XCTAssertNotNil(requestWithParam?.url)
let componets = URLComponents(url: requestWithParam!.url!, resolvingAgainstBaseURL: false)
XCTAssertEqual(componets?.queryItems?.count, 3)
XCTAssertNoThrow(try URLEncoder.encodeParameters(for: request, with: parameters))
}
}