8
8
require "webrick"
9
9
10
10
class Fluent ::Plugin ::OtlpOutputTest < Test ::Unit ::TestCase
11
+ class ServerRequest < Struct . new ( :request_method , :path , :header , :body ) ; end
12
+
11
13
DEFAULT_LOGGER = ::WEBrick ::Log . new ( $stdout, ::WEBrick ::BasicLog ::FATAL )
12
14
13
15
def config
@@ -29,18 +31,15 @@ def server_config
29
31
def run_http_server
30
32
server = ::WEBrick ::HTTPServer . new ( server_config )
31
33
server . mount_proc ( "/v1/metrics" ) do |req , res |
32
- @server_request = req
33
- @server_request_body = req . body
34
+ @@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
34
35
res . status = 200
35
36
end
36
37
server . mount_proc ( "/v1/traces" ) do |req , res |
37
- @server_request = req
38
- @server_request_body = req . body
38
+ @@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
39
39
res . status = 200
40
40
end
41
41
server . mount_proc ( "/v1/logs" ) do |req , res |
42
- @server_request = req
43
- @server_request_body = req . body
42
+ @@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
44
43
res . status = 200
45
44
end
46
45
server . start
@@ -55,16 +54,14 @@ def run_http_server
55
54
def setup
56
55
Fluent ::Test . setup
57
56
58
- @server_request = nil
59
- @server_request_body = nil
60
- @http_server_thread ||= Thread . new do
57
+ @@server_request = nil
58
+ @@http_server_thread ||= Thread . new do
61
59
run_http_server
62
60
end
63
61
end
64
62
65
63
def teardown
66
- @server_request = nil
67
- @server_request_body = nil
64
+ @@server_request = nil
68
65
end
69
66
70
67
def create_driver ( conf = config )
@@ -84,10 +81,10 @@ def test_send_logs
84
81
d . feed ( event )
85
82
end
86
83
87
- assert_equal ( "/v1/logs" , @server_request . path )
88
- assert_equal ( "POST" , @server_request . request_method )
89
- assert_equal ( [ "application/x-protobuf" ] , @server_request . header [ "content-type" ] )
90
- assert_equal ( TestData ::ProtocolBuffers ::LOGS , @server_request_body )
84
+ assert_equal ( "/v1/logs" , @@ server_request . path )
85
+ assert_equal ( "POST" , @@ server_request . request_method )
86
+ assert_equal ( [ "application/x-protobuf" ] , @@ server_request . header [ "content-type" ] )
87
+ assert_equal ( TestData ::ProtocolBuffers ::LOGS , @@server_request . body )
91
88
end
92
89
93
90
def test_send_metrics
@@ -98,10 +95,10 @@ def test_send_metrics
98
95
d . feed ( event )
99
96
end
100
97
101
- assert_equal ( "/v1/metrics" , @server_request . path )
102
- assert_equal ( "POST" , @server_request . request_method )
103
- assert_equal ( [ "application/x-protobuf" ] , @server_request . header [ "content-type" ] )
104
- assert_equal ( TestData ::ProtocolBuffers ::METRICS , @server_request_body )
98
+ assert_equal ( "/v1/metrics" , @@ server_request . path )
99
+ assert_equal ( "POST" , @@ server_request . request_method )
100
+ assert_equal ( [ "application/x-protobuf" ] , @@ server_request . header [ "content-type" ] )
101
+ assert_equal ( TestData ::ProtocolBuffers ::METRICS , @@server_request . body )
105
102
end
106
103
107
104
def test_send_traces
@@ -112,10 +109,10 @@ def test_send_traces
112
109
d . feed ( event )
113
110
end
114
111
115
- assert_equal ( "/v1/traces" , @server_request . path )
116
- assert_equal ( "POST" , @server_request . request_method )
117
- assert_equal ( [ "application/x-protobuf" ] , @server_request . header [ "content-type" ] )
118
- assert_equal ( TestData ::ProtocolBuffers ::TRACES , @server_request_body )
112
+ assert_equal ( "/v1/traces" , @@ server_request . path )
113
+ assert_equal ( "POST" , @@ server_request . request_method )
114
+ assert_equal ( [ "application/x-protobuf" ] , @@ server_request . header [ "content-type" ] )
115
+ assert_equal ( TestData ::ProtocolBuffers ::TRACES , @@server_request . body )
119
116
end
120
117
121
118
def test_send_compressed_message
@@ -126,11 +123,11 @@ def test_send_compressed_message
126
123
d . feed ( event )
127
124
end
128
125
129
- assert_equal ( "/v1/logs" , @server_request . path )
130
- assert_equal ( "POST" , @server_request . request_method )
131
- assert_equal ( [ "application/x-protobuf" ] , @server_request . header [ "content-type" ] )
132
- assert_equal ( [ "gzip" ] , @server_request . header [ "content-encoding" ] )
133
- assert_equal ( TestData ::ProtocolBuffers ::LOGS , decompress ( @server_request_body ) . force_encoding ( Encoding ::ASCII_8BIT ) )
126
+ assert_equal ( "/v1/logs" , @@ server_request . path )
127
+ assert_equal ( "POST" , @@ server_request . request_method )
128
+ assert_equal ( [ "application/x-protobuf" ] , @@ server_request . header [ "content-type" ] )
129
+ assert_equal ( [ "gzip" ] , @@ server_request . header [ "content-encoding" ] )
130
+ assert_equal ( TestData ::ProtocolBuffers ::LOGS , decompress ( @@server_request . body ) . force_encoding ( Encoding ::ASCII_8BIT ) )
134
131
end
135
132
136
133
def decompress ( data )
0 commit comments