diff --git a/lib/codegen/swift/alamofire.dart b/lib/codegen/swift/alamofire.dart index 8ba1b101..d3923ebc 100644 --- a/lib/codegen/swift/alamofire.dart +++ b/lib/codegen/swift/alamofire.dart @@ -21,13 +21,17 @@ multipartFormData.append(fileURL, withName: "{{param.name}}", fileName: "{{param '''; final String kTemplateJsonData = ''' -let jsonString = """{{jsonData}}""" -let jsonData = jsonString.data(using: .utf8) +let jsonString = """ +{{jsonData}} +""" +let jsonData = jsonString.data(using: .utf8)\n '''; final String kTemplateTextData = ''' -let textString = """{{textData}}""" -let textData = textString.data(using: .utf8) +let textString = """ +{{textData}} +""" +let textData = textString.data(using: .utf8)\n '''; final String kTemplateRequest = """ diff --git a/test/codegen/swift_alamofire_codegen_test.dart b/test/codegen/swift_alamofire_codegen_test.dart index 3b122abb..72d15046 100644 --- a/test/codegen/swift_alamofire_codegen_test.dart +++ b/test/codegen/swift_alamofire_codegen_test.dart @@ -329,6 +329,512 @@ dispatchMain()"""; SupportedUriSchemes.https, ), expectedCode); - } - ); - });} \ No newline at end of file + }); + + test('GET 11', () { + const expectedCode = r""" +import Foundation +import Alamofire +let url = "https://api.apidash.dev/humanize/social?num=8700000&digits=3" + + +AF.request(url, method: .get, headers: ["User-Agent": "Test Agent"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()"""; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelGet11, + SupportedUriSchemes.https, + ), + expectedCode); + }); + + test('GET 12', () { + const expectedCode = r""" +import Foundation +import Alamofire +let url = "https://api.apidash.dev/humanize/social" + + +AF.request(url, method: .get) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()"""; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelGet12, + SupportedUriSchemes.https, + ), + expectedCode); + }); + }, + + ); + + group( + 'HTTPVerb.head', + () { + test('HEAD 1', () { + const expectedCode = r""" +import Foundation +import Alamofire +let url = "https://api.apidash.dev" + + +AF.request(url, method: .head) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()"""; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelHead1, + SupportedUriSchemes.https, + ), + expectedCode); + }); + + test('HEAD 2', () { + const expectedCode = r""" +import Foundation +import Alamofire +let url = "https://api.apidash.dev" + + +AF.request(url, method: .head) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()"""; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelHead2, + SupportedUriSchemes.https, + ), + expectedCode); + }); + }, + + ); + + group( + "HTTPVerb.post", + () { + test('POST 1', () { + const expectedCode = r''' +import Foundation +import Alamofire +let textString = """ +{\n\"text\": \"I LOVE Flutter\"\n} +""" +let textData = textString.data(using: .utf8) +let url = "https://api.apidash.dev/case/lower" + + +AF.upload(textData!, to: url, method: .post, headers: ["Content-Type": "text/plain"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()'''; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelPost1, + SupportedUriSchemes.https, + ), + expectedCode); + }); + test('POST 2', () { + const expectedCode = r''' +import Foundation +import Alamofire +let jsonString = """ +{\n\"text\": \"I LOVE Flutter\",\n\"flag\": null,\n\"male\": true,\n\"female\": false,\n\"no\": 1.2,\n\"arr\": [\"null\", \"true\", \"false\", null]\n} +""" +let jsonData = jsonString.data(using: .utf8) +let url = "https://api.apidash.dev/case/lower" + + +AF.upload(jsonData!, to: url, method: .post, headers: ["Content-Type": "application/json"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()'''; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelPost2, + SupportedUriSchemes.https, + ), + expectedCode); + }); + + test('POST 3', () { + const expectedCode = r''' +import Foundation +import Alamofire +let jsonString = """ +{\n\"text\": \"I LOVE Flutter\"\n} +""" +let jsonData = jsonString.data(using: .utf8) +let url = "https://api.apidash.dev/case/lower" + + +AF.upload(jsonData!, to: url, method: .post, headers: ["User-Agent": "Test Agent", "Content-Type": "application/json"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()'''; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelPost3, + SupportedUriSchemes.https, + ), + expectedCode); + }); + +// test('POST 4', () { +// const expectedCode = r""" + +// """; + +// expect( +// codeGen.getCode( +// CodegenLanguage.swiftAlamofire, +// requestModelPost4, +// SupportedUriSchemes.https, +// ), +// expectedCode); +// }); + +// test('POST 5', () { +// const expectedCode = r""" + +// """; + +// expect( +// codeGen.getCode( +// CodegenLanguage.swiftAlamofire, +// requestModelPost5, +// SupportedUriSchemes.https, +// ), +// expectedCode); +// }); + + +// test('POST 6', () { +// const expectedCode = r""" + +// """; + +// expect( +// codeGen.getCode( +// CodegenLanguage.swiftAlamofire, +// requestModelPost6, +// SupportedUriSchemes.https, +// ), +// expectedCode); +// }); + + + + +// test('POST 7', () { +// const expectedCode = r""" + +// """; + +// expect( +// codeGen.getCode( +// CodegenLanguage.swiftAlamofire, +// requestModelPost7, +// SupportedUriSchemes.https, +// ), +// expectedCode); +// }); + test('POST 8', () { + const expectedCode = r""" + +"""; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelPost8, + SupportedUriSchemes.https, + ), + expectedCode); + }); +// test('POST 9', () { +// const expectedCode = r""" + +// """; + +// expect( +// codeGen.getCode( +// CodegenLanguage.swiftAlamofire, +// requestModelPost9, +// SupportedUriSchemes.https, +// ), +// expectedCode); +// }); +// test('POST 10', () { +// const expectedCode = r""" + +// """; + +// expect( +// codeGen.getCode( +// CodegenLanguage.swiftAlamofire, +// requestModelPost10, +// SupportedUriSchemes.https, +// ), +// expectedCode); +// }); + }, + + ); + + group( + 'HTTPVerb.put', + () { + test('PUT 1', () { + const expectedCode = r''' +import Foundation +import Alamofire +let jsonString = """ +{\n\"name\": \"morpheus\",\n\"job\": \"zion resident\"\n} +""" +let jsonData = jsonString.data(using: .utf8) +let url = "https://reqres.in/api/users/2" + + +AF.upload(jsonData!, to: url, method: .put, headers: ["Content-Type": "application/json"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()'''; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelPut1, + SupportedUriSchemes.https, + ), + expectedCode); + }); + }, + + ); + + group( + 'HTTPVerb.patch', + () { + test('PATCH 1', () { + const expectedCode = r''' +import Foundation +import Alamofire +let jsonString = """ +{\n\"name\": \"marfeus\",\n\"job\": \"accountant\"\n} +""" +let jsonData = jsonString.data(using: .utf8) +let url = "https://reqres.in/api/users/2" + + +AF.upload(jsonData!, to: url, method: .patch, headers: ["Content-Type": "application/json"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()'''; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelPatch1, + SupportedUriSchemes.https, + ), + expectedCode); + }); + }, + + ); + + group( + 'HTTPVerb.delete', + () { + test('DELETE 1', () { + const expectedCode = r""" +import Foundation +import Alamofire +let url = "https://reqres.in/api/users/2" + + +AF.request(url, method: .delete) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()"""; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelDelete1, + SupportedUriSchemes.https, + ), + expectedCode); + }); + + test('DELETE 2', () { + const expectedCode = r''' +import Foundation +import Alamofire +let jsonString = """ +{\n\"name\": \"marfeus\",\n\"job\": \"accountant\"\n} +""" +let jsonData = jsonString.data(using: .utf8) +let url = "https://reqres.in/api/users/2" + + +AF.upload(jsonData!, to: url, method: .delete, headers: ["Content-Type": "application/json"]) + +.responseData { response in + switch response.result { + case .success(let data): + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + case .failure(let error): + print("Error: \(error)") + } + exit(0) +} + +dispatchMain()'''; + + expect( + codeGen.getCode( + CodegenLanguage.swiftAlamofire, + requestModelDelete2, + SupportedUriSchemes.https, + ), + expectedCode); + }); + }, + + ); +}