@@ -28,19 +28,27 @@ def server_config
28
28
config
29
29
end
30
30
31
+ def server_request
32
+ @@server_request
33
+ end
34
+
35
+ def set_server_response_code ( code )
36
+ @@server_response_code = code
37
+ end
38
+
31
39
def run_http_server
32
40
server = ::WEBrick ::HTTPServer . new ( server_config )
33
41
server . mount_proc ( "/v1/metrics" ) do |req , res |
34
42
@@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
35
- res . status = 200
43
+ res . status = @@server_response_code
36
44
end
37
45
server . mount_proc ( "/v1/traces" ) do |req , res |
38
46
@@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
39
- res . status = 200
47
+ res . status = @@server_response_code
40
48
end
41
49
server . mount_proc ( "/v1/logs" ) do |req , res |
42
50
@@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
43
- res . status = 200
51
+ res . status = @@server_response_code
44
52
end
45
53
server . start
46
54
ensure
@@ -55,13 +63,15 @@ def setup
55
63
Fluent ::Test . setup
56
64
57
65
@@server_request = nil
66
+ @@server_response_code = 200
58
67
@@http_server_thread ||= Thread . new do
59
68
run_http_server
60
69
end
61
70
end
62
71
63
72
def teardown
64
73
@@server_request = nil
74
+ @@server_response_code = 200
65
75
end
66
76
67
77
def create_driver ( conf = config )
@@ -81,10 +91,10 @@ def test_send_logs
81
91
d . feed ( event )
82
92
end
83
93
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 )
94
+ assert_equal ( "/v1/logs" , server_request . path )
95
+ assert_equal ( "POST" , server_request . request_method )
96
+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
97
+ assert_equal ( TestData ::ProtocolBuffers ::LOGS , server_request . body )
88
98
end
89
99
90
100
def test_send_metrics
@@ -95,10 +105,10 @@ def test_send_metrics
95
105
d . feed ( event )
96
106
end
97
107
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 )
108
+ assert_equal ( "/v1/metrics" , server_request . path )
109
+ assert_equal ( "POST" , server_request . request_method )
110
+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
111
+ assert_equal ( TestData ::ProtocolBuffers ::METRICS , server_request . body )
102
112
end
103
113
104
114
def test_send_traces
@@ -109,10 +119,10 @@ def test_send_traces
109
119
d . feed ( event )
110
120
end
111
121
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 )
122
+ assert_equal ( "/v1/traces" , server_request . path )
123
+ assert_equal ( "POST" , server_request . request_method )
124
+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
125
+ assert_equal ( TestData ::ProtocolBuffers ::TRACES , server_request . body )
116
126
end
117
127
118
128
def test_send_compressed_message
@@ -123,13 +133,25 @@ def test_send_compressed_message
123
133
d . feed ( event )
124
134
end
125
135
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 ) )
136
+ assert_equal ( "/v1/logs" , server_request . path )
137
+ assert_equal ( "POST" , server_request . request_method )
138
+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
139
+ assert_equal ( [ "gzip" ] , server_request . header [ "content-encoding" ] )
140
+ assert_equal ( TestData ::ProtocolBuffers ::LOGS , decompress ( server_request . body ) . force_encoding ( Encoding ::ASCII_8BIT ) )
141
+ end
142
+
143
+ def test_illigal
144
+ set_server_response_code ( 500 )
145
+ event = { "type" => "otlp_logs" , "message" => TestData ::JSON ::LOGS }
146
+
147
+ d = create_driver
148
+ d . run ( default_tag : "otlp.test" ) do
149
+ d . feed ( event )
150
+ end
131
151
end
132
152
153
+
154
+
133
155
def decompress ( data )
134
156
Zlib ::GzipReader . new ( StringIO . new ( data ) ) . read
135
157
end
0 commit comments