import 'package:apidash/codegen/dart/http.dart'; import 'package:test/test.dart'; import '../request_models.dart'; void main() { final dartHttpCodeGen = DartHttpCodeGen(); group('GET Request', () { test('GET 1', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com'); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet1, "https"), expectedCode); }); test('GET 2', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/country/data'); var queryParams = {'code': 'US'}; uri = uri.replace(queryParameters: queryParams); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet2, "https"), expectedCode); }); test('GET 3', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/country/data?code=US'); var queryParams = {'code': 'IND'}; var urlQueryParams = Map.from(uri.queryParameters); urlQueryParams.addAll(queryParams); uri = uri.replace(queryParameters: urlQueryParams); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet3, "https"), expectedCode); }); test('GET 4', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/humanize/social'); var queryParams = { 'num': '8700000', 'digits': '3', 'system': 'SS', 'add_space': 'true', 'trailing_zeros': 'true', }; uri = uri.replace(queryParameters: queryParams); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet4, "https"), expectedCode); }); test('GET 5', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.github.com/repos/foss42/apidash'); var headers = {'User-Agent': 'Test Agent'}; final response = await http.get( uri, headers: headers, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet5, "https"), expectedCode); }); test('GET 6', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.github.com/repos/foss42/apidash'); var queryParams = {'raw': 'true'}; uri = uri.replace(queryParameters: queryParams); var headers = {'User-Agent': 'Test Agent'}; final response = await http.get( uri, headers: headers, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet6, "https"), expectedCode); }); test('GET 7', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com'); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet7, "https"), expectedCode); }); test('GET 8', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.github.com/repos/foss42/apidash'); var queryParams = {'raw': 'true'}; uri = uri.replace(queryParameters: queryParams); var headers = {'User-Agent': 'Test Agent'}; final response = await http.get( uri, headers: headers, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode); }); test('GET 9', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/humanize/social'); var queryParams = { 'num': '8700000', 'add_space': 'true', }; uri = uri.replace(queryParameters: queryParams); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet9, "https"), expectedCode); }); test('GET 10', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/humanize/social'); var headers = {'User-Agent': 'Test Agent'}; final response = await http.get( uri, headers: headers, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect( dartHttpCodeGen.getCode( requestModelGet10, "https", ), expectedCode); }); test('GET 11', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/humanize/social'); var queryParams = { 'num': '8700000', 'digits': '3', }; uri = uri.replace(queryParameters: queryParams); var headers = {'User-Agent': 'Test Agent'}; final response = await http.get( uri, headers: headers, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet11, "https"), expectedCode); }); test('GET 12', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/humanize/social'); final response = await http.get(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelGet12, "https"), expectedCode); }); }); group('HEAD Request', () { test('HEAD 1', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com'); final response = await http.head(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelHead1, "https"), expectedCode); }); test('HEAD 2', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('http://api.foss42.com'); final response = await http.head(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelHead2, "http"), expectedCode); }); }); group('POST Request', () { test('POST 1', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/case/lower'); String body = r'''{ "text": "I LOVE Flutter" }'''; var headers = {'content-type': 'text/plain'}; final response = await http.post( uri, headers: headers, body: body, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelPost1, "https"), expectedCode); }); test('POST 2', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/case/lower'); String body = r'''{ "text": "I LOVE Flutter" }'''; var headers = {'content-type': 'application/json'}; final response = await http.post( uri, headers: headers, body: body, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelPost2, "https"), expectedCode); }); test('POST 3', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://api.foss42.com/case/lower'); String body = r'''{ "text": "I LOVE Flutter" }'''; var headers = { 'User-Agent': 'Test Agent', 'content-type': 'application/json', }; final response = await http.post( uri, headers: headers, body: body, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelPost3, "https"), expectedCode); }); }); group('PUT Request', () { test('PUT 1', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://reqres.in/api/users/2'); String body = r'''{ "name": "morpheus", "job": "zion resident" }'''; var headers = {'content-type': 'application/json'}; final response = await http.put( uri, headers: headers, body: body, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect(dartHttpCodeGen.getCode(requestModelPut1, "https"), expectedCode); }); }); group('PATCH Request', () { test('PATCH 1', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://reqres.in/api/users/2'); String body = r'''{ "name": "marfeus", "job": "accountant" }'''; var headers = {'content-type': 'application/json'}; final response = await http.patch( uri, headers: headers, body: body, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect( dartHttpCodeGen.getCode(requestModelPatch1, "https"), expectedCode); }); }); group('DELETE Request', () { test('DELETE 1', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://reqres.in/api/users/2'); final response = await http.delete(uri); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect( dartHttpCodeGen.getCode(requestModelDelete1, "https"), expectedCode); }); test('DELETE 2', () { const expectedCode = r"""import 'package:http/http.dart' as http; void main() async { var uri = Uri.parse('https://reqres.in/api/users/2'); String body = r'''{ "name": "marfeus", "job": "accountant" }'''; var headers = {'content-type': 'application/json'}; final response = await http.delete( uri, headers: headers, body: body, ); int statusCode = response.statusCode; if (statusCode >= 200 && statusCode < 300) { print('Status Code: $statusCode'); print('Response Body: ${response.body}'); } else { print('Error Status Code: $statusCode'); print('Error Response Body: ${response.body}'); } } """; expect( dartHttpCodeGen.getCode(requestModelDelete2, "https"), expectedCode); }); }); }