@@ -108,7 +108,43 @@ class TestMutableRequest: XCTestCase {
108108 XCTAssertNotNil ( request. parameters)
109109 }
110110
111- func testupdateHTTPHeaderFields( ) {
111+ func testQueryParametersAreProperlySetWhenURLQueryItemConfigurationIsUsed( ) {
112+ let queryParameters = [ URLQueryItem ( name: " token1 " , value: " token1 " ) ,
113+ URLQueryItem ( name: " token2 " , value: " token2 " ) ]
114+ let request = mutableRequestWithQuery ( queryParameters)
115+ XCTAssertTrue ( request. queryString!. contains ( " token1=token1 " ) )
116+ XCTAssertTrue ( request. queryString!. contains ( " token2=token2 " ) )
117+ }
118+
119+ func testQueryParametersAreSetWhenEqualKeysAreBeingUsed( ) {
120+ let queryParameters = [ URLQueryItem ( name: " token1 " , value: " token1 " ) ,
121+ URLQueryItem ( name: " token1 " , value: " token2 " ) ]
122+
123+ let request = mutableRequestWithQuery ( queryParameters)
124+ XCTAssertTrue ( request. queryString!. contains ( " token1=token1 " ) )
125+ XCTAssertTrue ( request. queryString!. contains ( " token1=token2 " ) )
126+ }
127+
128+ func testURLEscapeEncodingIsAppliedInQueryString( ) {
129+ let param1 = " New Parameter "
130+ let value1 = " Hello, world! "
131+
132+ let queryParameters = [ URLQueryItem ( name: param1, value: value1) ]
133+ let request = mutableRequestWithQuery ( queryParameters)
134+ XCTAssertEqual ( request. queryString!,
135+ ( " \( param1. urlEncodedStringWithEncoding ( ) ) = \( value1. urlEncodedStringWithEncoding ( ) ) " ) )
136+ }
137+
138+ func testUpdateQueryParametersFromUnsupportedType( ) {
139+ var request = mockGenerator. generateRequest ( withMethod: . GET)
140+ let queryParameters = [ " param1=value1 " , " param2=value2 " ]
141+
142+ request. updateQueryParameters ( parameters: queryParameters)
143+
144+ XCTAssertNil ( request. queryString)
145+ }
146+
147+ func testUpdateHTTPHeaderFields( ) {
112148 var request = mockGenerator. request ( withMethod: . POST) |> mockGenerator. withBasicAuth |> mockGenerator. withJsonSupport
113149
114150 XCTAssertEqual ( request. headerFields [ " Accept " ] , " application/json " )
@@ -120,4 +156,13 @@ class TestMutableRequest: XCTestCase {
120156
121157 XCTAssertNotNil ( request. headerFields [ " Test1 " ] )
122158 }
159+
160+ // MARK: - Private
161+
162+ private func mutableRequestWithQuery( _ params: Any ) -> MutableRequest {
163+ var request = mockGenerator. generateRequest ( withMethod: . GET)
164+ request. updateQueryParameters ( parameters: params)
165+ return request
166+ }
167+
123168}
0 commit comments