mirror of
https://github.com/foss42/apidash.git
synced 2025-05-23 01:06:46 +08:00
165 lines
5.3 KiB
Dart
165 lines
5.3 KiB
Dart
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
|
|
import 'package:apidash/models/kvrow_model.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);
|
|
});
|
|
|
|
test(
|
|
'getCode returns valid code for requests with headers and query parameters',
|
|
() {
|
|
const requestModel = RequestModel(
|
|
url: 'https://jsonplaceholder.typicode.com/posts',
|
|
method: HTTPVerb.get,
|
|
requestParams: [
|
|
KVRow('userId', 1),
|
|
],
|
|
requestHeaders: [
|
|
KVRow('Custom-Header-1', 'Value-1'),
|
|
KVRow('Custom-Header-2', 'Value-2')
|
|
],
|
|
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")
|
|
.addQueryParameter("userId", "1")
|
|
.addHeader("Custom-Header-1", "Value-1")
|
|
.addHeader("Custom-Header-2", "Value-2")
|
|
.build()
|
|
val response = client.newCall(request).execute()
|
|
|
|
println(response.body!!.string())
|
|
""";
|
|
expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode);
|
|
});
|
|
});
|
|
}
|