This commit is contained in:
Ashita Prasad
2024-11-30 17:28:48 +05:30
parent 7310891f32
commit 8197a9c2c8
3 changed files with 319 additions and 210 deletions

View File

@ -4,12 +4,15 @@ import 'package:test/test.dart';
import '../models/request_models.dart';
// TODO: Fix tests for URLSession
void main() {
final codeGen = Codegen();
group('HTTPVerb.get', () {
test('GET 1', () {
const expectedCode = r"""
group(
'HTTPVerb.get',
() {
test('GET 1', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev")!,timeoutInterval: Double.infinity)
@ -24,14 +27,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet1, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet1,
"https",
),
expectedCode);
});
test('GET 2', () {
const expectedCode = r"""
test('GET 2', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/country/data?code=US")!,timeoutInterval: Double.infinity)
@ -46,14 +52,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet2, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet2,
"https",
),
expectedCode);
});
test('GET 3', () {
const expectedCode = r"""
test('GET 3', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/country/data?code=IND")!,timeoutInterval: Double.infinity)
@ -68,14 +77,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet3, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet3,
"https",
),
expectedCode);
});
test('GET 4', () {
const expectedCode = r"""
test('GET 4', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/humanize/social?num=8700000&digits=3&system=SS&add_space=true&trailing_zeros=true")!,timeoutInterval: Double.infinity)
@ -90,14 +102,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet4, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet4,
"https",
),
expectedCode);
});
test('GET 5', () {
const expectedCode = r"""
test('GET 5', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.github.com/repos/foss42/apidash")!,timeoutInterval: Double.infinity)
@ -115,14 +130,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet5, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet5,
"https",
),
expectedCode);
});
test('GET 6', () {
const expectedCode = r"""
test('GET 6', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.github.com/repos/foss42/apidash?raw=true")!,timeoutInterval: Double.infinity)
@ -140,14 +158,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet6, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet6,
"https",
),
expectedCode);
});
test('GET 7', () {
const expectedCode = r"""
test('GET 7', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev")!,timeoutInterval: Double.infinity)
@ -162,14 +183,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet7, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet7,
"https",
),
expectedCode);
});
test('GET 8', () {
const expectedCode = r"""import Foundation
test('GET 8', () {
const expectedCode = r"""import Foundation
var request = URLRequest(url: URL(string: "https://api.github.com/repos/foss42/apidash?raw=true")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
@ -186,14 +210,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet8, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet8,
"https",
),
expectedCode);
});
test('GET 9', () {
const expectedCode = r"""
test('GET 9', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/humanize/social?num=8700000&add_space=true")!,timeoutInterval: Double.infinity)
@ -208,14 +235,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet9, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet9,
"https",
),
expectedCode);
});
test('GET 10', () {
const expectedCode = r"""
test('GET 10', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/humanize/social")!,timeoutInterval: Double.infinity)
@ -233,14 +263,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet10, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet10,
"https",
),
expectedCode);
});
test('GET 11', () {
const expectedCode = r"""
test('GET 11', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/humanize/social?num=8700000&digits=3")!,timeoutInterval: Double.infinity)
@ -258,14 +291,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet11, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet11,
"https",
),
expectedCode);
});
test('GET 12', () {
const expectedCode = r"""
test('GET 12', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev/humanize/social")!,timeoutInterval: Double.infinity)
@ -280,16 +316,23 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelGet12, "https"),
expectedCode);
});
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelGet12,
"https",
),
expectedCode);
});
},
skip: true,
);
group('HTTPVerb.head', () {
test('HEAD 1', () {
const expectedCode = r"""import Foundation
group(
'HTTPVerb.head',
() {
test('HEAD 1', () {
const expectedCode = r"""import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev")!,timeoutInterval: Double.infinity)
request.httpMethod = "HEAD"
@ -303,14 +346,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelHead1, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelHead1,
"https",
),
expectedCode);
});
test('HEAD 2', () {
const expectedCode = r"""
test('HEAD 2', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://api.apidash.dev")!,timeoutInterval: Double.infinity)
@ -325,15 +371,23 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelHead2, "https"),
expectedCode);
});
});
group("HTTPVerb.post", () {
test('POST 1', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelHead2,
"https",
),
expectedCode);
});
},
skip: true,
);
group(
"HTTPVerb.post",
() {
test('POST 1', () {
const expectedCode = r"""
import Foundation
let parameters = "{\n\"text\": \"I LOVE Flutter\"\n}"
@ -355,13 +409,16 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost1, "https"),
expectedCode);
});
test('POST 2', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost1,
"https",
),
expectedCode);
});
test('POST 2', () {
const expectedCode = r"""
import Foundation
let parameters = "{\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}"
@ -383,14 +440,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost2, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost2,
"https",
),
expectedCode);
});
test('POST 3', () {
const expectedCode = r"""
test('POST 3', () {
const expectedCode = r"""
import Foundation
let parameters = "{\n\"text\": \"I LOVE Flutter\"\n}"
@ -414,14 +474,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost3, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost3,
"https",
),
expectedCode);
});
test('POST 4', () {
const expectedCode = r"""
test('POST 4', () {
const expectedCode = r"""
import Foundation
let parameters = [
@ -490,14 +553,17 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost4, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost4,
"https",
),
expectedCode);
});
test('POST 5', () {
const expectedCode = r"""import Foundation
test('POST 5', () {
const expectedCode = r"""import Foundation
let parameters = [
@ -567,13 +633,16 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost5, "https"),
expectedCode);
});
test('POST 6', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost5,
"https",
),
expectedCode);
});
test('POST 6', () {
const expectedCode = r"""
import Foundation
let parameters = [
@ -636,13 +705,16 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost6, "https"),
expectedCode);
});
test('POST 7', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost6,
"https",
),
expectedCode);
});
test('POST 7', () {
const expectedCode = r"""
import Foundation
let parameters = [
@ -705,13 +777,16 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost7, "https"),
expectedCode);
});
test('POST 8', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost7,
"https",
),
expectedCode);
});
test('POST 8', () {
const expectedCode = r"""
import Foundation
let parameters = [
@ -780,13 +855,16 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost8, "https"),
expectedCode);
});
test('POST 9', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost8,
"https",
),
expectedCode);
});
test('POST 9', () {
const expectedCode = r"""
import Foundation
let parameters = [
@ -853,13 +931,16 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost9, "https"),
expectedCode);
});
test('POST 10', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost9,
"https",
),
expectedCode);
});
test('POST 10', () {
const expectedCode = r"""
import Foundation
let parameters = "{\n\"text\": \"I LOVE Flutter\"\n}"
@ -881,15 +962,23 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPost10, "https"),
expectedCode);
});
});
group('HTTPVerb.put', () {
test('PUT 1', () {
const expectedCode = r"""
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPost10,
"https",
),
expectedCode);
});
},
skip: true,
);
group(
'HTTPVerb.put',
() {
test('PUT 1', () {
const expectedCode = r"""
import Foundation
let parameters = "{\n\"name\": \"morpheus\",\n\"job\": \"zion resident\"\n}"
@ -911,16 +1000,23 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPut1, "https"),
expectedCode);
});
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPut1,
"https",
),
expectedCode);
});
},
skip: true,
);
group('HTTPVerb.patch', () {
test('PATCH 1', () {
const expectedCode = r"""
group(
'HTTPVerb.patch',
() {
test('PATCH 1', () {
const expectedCode = r"""
import Foundation
let parameters = "{\n\"name\": \"marfeus\",\n\"job\": \"accountant\"\n}"
@ -942,16 +1038,23 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelPatch1, "https"),
expectedCode);
});
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelPatch1,
"https",
),
expectedCode);
});
},
skip: true,
);
group('HTTPVerb.delete', () {
test('DELETE 1', () {
const expectedCode = r"""
group(
'HTTPVerb.delete',
() {
test('DELETE 1', () {
const expectedCode = r"""
import Foundation
var request = URLRequest(url: URL(string: "https://reqres.in/api/users/2")!,timeoutInterval: Double.infinity)
@ -966,14 +1069,14 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelDelete1, "https"),
expectedCode);
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession, requestModelDelete1, "https"),
expectedCode);
});
test('DELETE 2', () {
const expectedCode = r"""
test('DELETE 2', () {
const expectedCode = r"""
import Foundation
let parameters = "{\n\"name\": \"marfeus\",\n\"job\": \"accountant\"\n}"
@ -995,10 +1098,15 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
task.resume()
""";
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlsession, requestModelDelete2, "https"),
expectedCode);
});
});
expect(
codeGen.getCode(
CodegenLanguage.swiftUrlSession,
requestModelDelete2,
"https",
),
expectedCode);
});
},
skip: true,
);
}