diff --git a/Example/Tests/Methods/URLSessionMock.swift b/Example/Tests/Methods/URLSessionMock.swift index 31e5b53..07499ca 100644 --- a/Example/Tests/Methods/URLSessionMock.swift +++ b/Example/Tests/Methods/URLSessionMock.swift @@ -18,14 +18,20 @@ class URLSessionMock: URLSessionProtocol { with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void ) -> URLSessionDataTask { + guard let url = request.url else { + return URLSessionDataTaskMock { + completionHandler(nil, nil, nil) + } + } let error = error + let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: nil) if let dataString = responseJsonString { return URLSessionDataTaskMock { - completionHandler(Data(dataString.utf8), nil, error) + completionHandler(Data(dataString.utf8), response, error) } } return URLSessionDataTaskMock { - completionHandler(nil, nil, error) + completionHandler(nil, response, error) } } diff --git a/Example/Tests/QueryItemCoding/QueryItemEncodingTests.swift b/Example/Tests/QueryItemCoding/QueryItemEncodingTests.swift index bd8707e..8547fca 100644 --- a/Example/Tests/QueryItemCoding/QueryItemEncodingTests.swift +++ b/Example/Tests/QueryItemCoding/QueryItemEncodingTests.swift @@ -35,8 +35,8 @@ func testDictionaryDecoding() throws { // Given: let param = [ - QueryName.publicKeySignaturePairs.rawValue + "%5Btest1%5D": "1", - QueryName.publicKeySignaturePairs.rawValue + "%5Btest2%5D": "2" + QueryName.publicKeySignaturePairs.rawValue + "[test1]": "1", + QueryName.publicKeySignaturePairs.rawValue + "[test2]": "2" ] let expect: [String: String] = [ @@ -64,8 +64,8 @@ "test2": data2 ]) let expect: [URLQueryItem] = [ - URLQueryItem(name: QueryName.appendTx.rawValue + "%5Btest1%5D", value: "0x1234"), - URLQueryItem(name: QueryName.appendTx.rawValue + "%5Btest2%5D", value: "0x2345") + URLQueryItem(name: QueryName.appendTx.rawValue + "[test1]", value: "0x1234"), + URLQueryItem(name: QueryName.appendTx.rawValue + "[test2]", value: "0x2345") ] // When: @@ -78,8 +78,8 @@ func testDictionaryDataDecoding() throws { // Given: let param = [ - QueryName.appendTx.rawValue + "%5Btest1%5D": "1234", - QueryName.appendTx.rawValue + "%5Btest2%5D": "2345" + QueryName.appendTx.rawValue + "[test1]": "1234", + QueryName.appendTx.rawValue + "[test2]": "2345" ] let expect: [String: Data] = [ diff --git a/Sources/Core/Utilities/URLEncoding.swift b/Sources/Core/Utilities/URLEncoding.swift index 53884ea..10bb9e2 100644 --- a/Sources/Core/Utilities/URLEncoding.swift +++ b/Sources/Core/Utilities/URLEncoding.swift @@ -43,13 +43,13 @@ public enum URLEncoding { let boolEncoding = BoolEncoding() components.append( .init( - name: escape(key), + name: key, value: escape(boolEncoding.encode(value: number.boolValue)) )) } else { components.append( .init( - name: escape(key), + name: key, value: escape("\(number)") )) } @@ -57,13 +57,13 @@ public enum URLEncoding { let boolEncoding = BoolEncoding() components.append( .init( - name: escape(key), + name: key, value: escape(boolEncoding.encode(value: bool)) )) case let data as Data: components.append( .init( - name: escape(key), + name: key, value: data.bloctoSDK.hexStringWith0xPrefix )) case let string as String: @@ -75,7 +75,7 @@ public enum URLEncoding { default: components.append( .init( - name: escape(key), + name: key, value: "\(value)" )) }