import 'package:apidash/codegen/kotlin/pkg_okhttp.dart'; import 'package:apidash/models/request_model.dart'; import 'package:test/test.dart'; import 'package:apidash/consts.dart'; void main() { group('KotlinOkHttpCodeGen', () { final kotlinOkHttpCodeGen = KotlinOkHttpCodeGen(); test('getCode returns valid code for GET request', () { const requestModel = RequestModel( url: 'https://jsonplaceholder.typicode.com/todos/1', method: HTTPVerb.get, id: '', ); const expectedCode = """import okhttp3.MediaType.Companion.toMediaType import okhttp3.MultipartBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.asRequestBody import java.io.File import java.util.concurrent.TimeUnit val client = OkHttpClient() val request = Request.Builder() .url("https://jsonplaceholder.typicode.com/todos/1") .build() val response = client.newCall(request).execute() println(response.body!!.string()) """; expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode); }); test('getCode returns valid code for POST request', () { const requestModel = RequestModel( url: 'https://jsonplaceholder.typicode.com/posts', method: HTTPVerb.post, requestBody: '{"title": "foo","body": "bar","userId": 1}', requestBodyContentType: ContentType.json, id: '1', ); const expectedCode = """import okhttp3.MediaType.Companion.toMediaType import okhttp3.MultipartBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.asRequestBody import java.io.File import java.util.concurrent.TimeUnit val client = OkHttpClient() val mediaType = "application/json".toMediaType() val body = "{\"title\": \"foo\",\"body\": \"bar\",\"userId\": 1}".toRequestBody(mediaType) val request = Request.Builder() .url("https://jsonplaceholder.typicode.com/posts") .post(body) .build() val response = client.newCall(request).execute() println(response.body!!.string()) """; expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode); }); test('getCode returns valid code for DELETE request', () { const requestModel = RequestModel( url: 'https://jsonplaceholder.typicode.com/posts/1', method: HTTPVerb.delete, requestBody: '{"title": "foo","body": "bar","userId": 1}', requestBodyContentType: ContentType.json, id: '1', ); const expectedCode = """import okhttp3.MediaType.Companion.toMediaType import okhttp3.MultipartBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.asRequestBody import java.io.File import java.util.concurrent.TimeUnit val client = OkHttpClient() val mediaType = "application/json".toMediaType() val body = "{\"title\": \"foo\",\"body\": \"bar\",\"userId\": 1}".toRequestBody(mediaType) val request = Request.Builder() .url("https://jsonplaceholder.typicode.com/posts/1") .method("DELETE", body) .build() val response = client.newCall(request).execute() println(response.body!!.string()) """; expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode); }); test('getCode returns valid code for HEAD request', () { const requestModel = RequestModel( url: 'https://jsonplaceholder.typicode.com/posts/1', method: HTTPVerb.head, id: '1', ); const expectedCode = """import okhttp3.MediaType.Companion.toMediaType import okhttp3.MultipartBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.asRequestBody import java.io.File import java.util.concurrent.TimeUnit val client = OkHttpClient() val request = Request.Builder() .url("https://jsonplaceholder.typicode.com/posts/1") .head() .build() val response = client.newCall(request).execute() println(response.body!!.string()) """; expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode); }); }); }