-
-
Notifications
You must be signed in to change notification settings - Fork 469
Expand file tree
/
Copy pathRestTestClient.kt
More file actions
109 lines (75 loc) · 3.16 KB
/
RestTestClient.kt
File metadata and controls
109 lines (75 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package io.sentry.systemtest.util
import io.sentry.systemtest.Person
import io.sentry.systemtest.Todo
import okhttp3.Request
class RestTestClient(private val backendBaseUrl: String) : LoggingInsecureRestClient() {
fun getPerson(id: Long): Person? {
val request = Request.Builder().url("$backendBaseUrl/person/$id")
return callTyped(request, true)
}
fun createPerson(person: Person, extraHeaders: Map<String, String>? = null): Person? {
val request = Request.Builder().url("$backendBaseUrl/person/").post(toRequestBody(person))
return callTyped(request, true, extraHeaders)
}
fun getPersonDistributedTracing(id: Long, extraHeaders: Map<String, String>? = null): Person? {
val request = Request.Builder().url("$backendBaseUrl/tracing/$id")
return callTyped(request, true, extraHeaders)
}
fun createPersonDistributedTracing(
person: Person,
extraHeaders: Map<String, String>? = null,
): Person? {
val request = Request.Builder().url("$backendBaseUrl/tracing/").post(toRequestBody(person))
return callTyped(request, true, extraHeaders)
}
fun getTodo(id: Long): Todo? {
val request = Request.Builder().url("$backendBaseUrl/todo/$id")
return callTyped(request, true)
}
fun getTodoWebclient(id: Long): Todo? {
val request = Request.Builder().url("$backendBaseUrl/todo-webclient/$id")
return callTyped(request, true)
}
fun getTodoRestClient(id: Long): Todo? {
val request = Request.Builder().url("$backendBaseUrl/todo-restclient/$id")
return callTyped(request, true)
}
fun getCachedTodo(id: Long): Todo? {
val request = Request.Builder().url("$backendBaseUrl/cache/$id")
return callTyped(request, true)
}
fun saveCachedTodo(todo: Todo): Todo? {
val request = Request.Builder().url("$backendBaseUrl/cache/").post(toRequestBody(todo))
return callTyped(request, true)
}
fun deleteCachedTodo(id: Long) {
val request = Request.Builder().url("$backendBaseUrl/cache/$id").delete()
call(request, true)
}
fun checkFeatureFlag(flagKey: String): FeatureFlagResponse? {
val request = Request.Builder().url("$backendBaseUrl/feature-flag/check/$flagKey")
return callTyped(request, true)
}
fun errorWithFeatureFlag(flagKey: String): String? {
val request = Request.Builder().url("$backendBaseUrl/feature-flag/error/$flagKey")
val response = call(request, true)
return response?.body?.string()
}
fun produceKafkaMessage(message: String = "hello from sentry!"): String? {
val request = Request.Builder().url("$backendBaseUrl/kafka/produce?message=$message")
return callTyped(request, true)
}
fun getCountMetric(): String? {
val request = Request.Builder().url("$backendBaseUrl/metric/count")
return callTyped(request, true)
}
fun getGaugeMetric(value: Long): String? {
val request = Request.Builder().url("$backendBaseUrl/metric/gauge/$value")
return callTyped(request, true)
}
fun getDistributionMetric(value: Long): String? {
val request = Request.Builder().url("$backendBaseUrl/metric/distribution/$value")
return callTyped(request, true)
}
}
data class FeatureFlagResponse(val flagKey: String, val value: Boolean)