88require "webrick"
99
1010class Fluent ::Plugin ::OtlpOutputTest < Test ::Unit ::TestCase
11+ class ServerRequest < Struct . new ( :request_method , :path , :header , :body ) ; end
12+
1113 DEFAULT_LOGGER = ::WEBrick ::Log . new ( $stdout, ::WEBrick ::BasicLog ::FATAL )
1214
1315 def config
@@ -29,18 +31,15 @@ def server_config
2931 def run_http_server
3032 server = ::WEBrick ::HTTPServer . new ( server_config )
3133 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 )
3435 res . status = 200
3536 end
3637 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 )
3939 res . status = 200
4040 end
4141 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 )
4443 res . status = 200
4544 end
4645 server . start
@@ -55,16 +54,14 @@ def run_http_server
5554 def setup
5655 Fluent ::Test . setup
5756
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
6159 run_http_server
6260 end
6361 end
6462
6563 def teardown
66- @server_request = nil
67- @server_request_body = nil
64+ @@server_request = nil
6865 end
6966
7067 def create_driver ( conf = config )
@@ -84,10 +81,10 @@ def test_send_logs
8481 d . feed ( event )
8582 end
8683
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 )
9188 end
9289
9390 def test_send_metrics
@@ -98,10 +95,10 @@ def test_send_metrics
9895 d . feed ( event )
9996 end
10097
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 )
105102 end
106103
107104 def test_send_traces
@@ -112,10 +109,10 @@ def test_send_traces
112109 d . feed ( event )
113110 end
114111
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 )
119116 end
120117
121118 def test_send_compressed_message
@@ -126,11 +123,11 @@ def test_send_compressed_message
126123 d . feed ( event )
127124 end
128125
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 ) )
134131 end
135132
136133 def decompress ( data )
0 commit comments