@@ -18,62 +18,71 @@ class RequestTests: XCTestCase {
1818
1919 XCTAssertEqual ( request. httpMethod, " POST " )
2020 }
21-
22- func test_toURLRequest_EncodeBody ( ) throws {
23- let request = try Request < Void > . post ( . test, body: . encodable ( Body ( ) ) )
21+
22+ func test_toURLRequest_encodeBody ( ) throws {
23+ let request = try Request < Void > . post ( . test, body: BodyMock ( ) )
2424 . toURLRequest ( encoder: JSONEncoder ( ) , relativeTo: baseURL)
25-
26- XCTAssertEqual ( request. httpBody, try JSONEncoder ( ) . encode ( Body ( ) ) )
25+
26+ XCTAssertEqual ( request. httpBody, try JSONEncoder ( ) . encode ( BodyMock ( ) ) )
2727 }
28-
28+
29+ func test_toURLRequest_setCachePolicy( ) throws {
30+ let request = try Request < Void >
31+ . get ( . test)
32+ . cachePolicy ( . returnCacheDataDontLoad)
33+ . toURLRequest ( encoder: JSONEncoder ( ) , relativeTo: baseURL)
34+
35+ XCTAssertEqual ( request. cachePolicy, . returnCacheDataDontLoad)
36+ }
37+
2938 func test_toURLRequest_encodeMultipartBody( ) throws {
30- let crlf = EncodingCharacters . crlf
31- let boundary = " boundary "
32- var multipart = MultipartFormData ( boundary: boundary)
33- let url = try url ( forResource: " swift " , withExtension: " png " )
34- let name = " swift "
35- try multipart. add ( url: url, name: name)
36-
37- let request = try Request < Void > . post ( . test, body: . multipart( multipart ) )
39+ let crlf = EncodingCharacters . crlf
40+ let boundary = " boundary "
41+ var multipart = MultipartFormData ( boundary: boundary)
42+ let url = try url ( forResource: " swift " , withExtension: " png " )
43+ let name = " swift "
44+ try multipart. add ( url: url, name: name)
45+
46+ let request = try Request < Void > . post ( . test, body: multipart)
3847 . toURLRequest ( encoder: JSONEncoder ( ) , relativeTo: baseURL)
39-
40- /// We can't use `XCTAssertEqual(request.httpBody, try multipart.encode)`
41- /// The `encode` method is executed to fast and rase and error
42- var body = Data ( )
43- body. append ( Boundary . data ( for: . initial, boundary: boundary) )
44- body. append (
45- Data ( (
46- " Content-Disposition: form-data; name= \" \( name) \" ; filename= \" swift.png \" \( crlf) "
47- + " Content-Type: image/png \( crlf) \( crlf) "
48- ) . utf8)
49- )
50- body. append ( try Data ( contentsOf: url) )
51- body. append ( Boundary . data ( for: . final, boundary: boundary) )
52- XCTAssertEqual ( request. httpBody, body)
48+
49+ /// We can't use `XCTAssertEqual(request.httpBody, try multipart.encode)`
50+ /// The `encode` method is executed to fast and rase and error
51+ var body = Data ( )
52+ body. append ( Boundary . data ( for: . initial, boundary: boundary) )
53+ body. append (
54+ Data ( (
55+ " Content-Disposition: form-data; name= \" \( name) \" ; filename= \" swift.png \" \( crlf) "
56+ + " Content-Type: image/png \( crlf) \( crlf) "
57+ ) . utf8)
58+ )
59+ body. append ( try Data ( contentsOf: url) )
60+ body. append ( Boundary . data ( for: . final, boundary: boundary) )
61+ XCTAssertEqual ( request. httpBody, body)
5362 }
54-
55- func test_toURLRequest_bodyIsEncodable_FillDefaultHeaders ( ) throws {
56- let request = try Request < Void > . post ( . test, body: . encodable ( Body ( ) ) )
63+
64+ func test_toURLRequest_bodyIsEncodable_fillContentTypeHeader ( ) throws {
65+ let request = try Request < Void > . post ( . test, body: BodyMock ( ) )
5766 . toURLRequest ( encoder: JSONEncoder ( ) , relativeTo: baseURL)
58-
59- XCTAssertEqual ( request. allHTTPHeaderFields ? [ " Content-Type " ] , " application/json " )
67+
68+ XCTAssertEqual ( request. allHTTPHeaderFields ? [ " Content-Type " ] , " application/json " )
6069 }
61-
62- func test_toURLRequest_bodyIsMultipart_itFillDefaultHeaders ( ) throws {
63- let boundary = " boundary "
64- var multipart = MultipartFormData ( boundary: boundary)
65- let url = try url ( forResource: " swift " , withExtension: " png " )
66- let name = " swift "
67- try multipart. add ( url: url, name: name)
68-
69- let request = try Request < Void > . post ( . test, body: . multipart( multipart ) )
70+
71+ func test_toURLRequest_bodyIsMultipart_fillContentTypeHeader ( ) throws {
72+ let boundary = " boundary "
73+ var multipart = MultipartFormData ( boundary: boundary)
74+ let url = try url ( forResource: " swift " , withExtension: " png " )
75+ let name = " swift "
76+ try multipart. add ( url: url, name: name)
77+
78+ let request = try Request < Void > . post ( . test, body: multipart)
7079 . toURLRequest ( encoder: JSONEncoder ( ) , relativeTo: baseURL)
71-
72- XCTAssertEqual ( request. allHTTPHeaderFields ? [ " Content-Type " ] , HTTPContentType . multipart ( boundary: multipart. boundary) . value)
80+
81+ XCTAssertEqual ( request. allHTTPHeaderFields ? [ " Content-Type " ] , HTTPContentType . multipart ( boundary: multipart. boundary) . value)
7382 }
7483
7584}
7685
77- private struct Body : Encodable {
86+ private struct BodyMock : Encodable {
7887
7988}
0 commit comments