Skip to content

Commit 4de9f40

Browse files
committed
tests: use in_syslog and stop using mock
1 parent 37f7eec commit 4de9f40

File tree

1 file changed

+65
-24
lines changed

1 file changed

+65
-24
lines changed

test/plugin/out_remote_syslog.rb

Lines changed: 65 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
require "test_helper"
22
require "fluent/plugin/out_remote_syslog"
3+
require "fluent/plugin/in_syslog"
4+
require 'fluent/test/driver/input'
35

46
class RemoteSyslogOutputTest < Test::Unit::TestCase
57
def setup
68
Fluent::Test.setup
79
end
810

9-
def create_driver(conf = CONFIG)
11+
def create_driver_out_syslog(conf)
1012
Fluent::Test::Driver::Output.new(Fluent::Plugin::RemoteSyslogOutput).configure(conf)
1113
end
1214

15+
def create_driver_in_syslog(conf)
16+
Fluent::Test::Driver::Input.new(Fluent::Plugin::SyslogInput).configure(conf)
17+
end
18+
1319
def test_configure
14-
d = create_driver %[
20+
d = create_driver_out_syslog %[
1521
@type remote_syslog
1622
hostname foo.com
1723
host example.com
@@ -28,13 +34,16 @@ def test_configure
2834
assert_equal "debug", d.instance.instance_variable_get(:@severity)
2935
end
3036

31-
def test_write
32-
d = create_driver %[
37+
data("debug", {severity: "debug"})
38+
data("warn", {severity: "warn"})
39+
data("warning", {severity: "warning", expected_severity: "warn"})
40+
def test_write_udp(data)
41+
out_driver = create_driver_out_syslog %[
3342
@type remote_syslog
3443
hostname foo.com
35-
host example.com
44+
host localhost
3645
port 5566
37-
severity debug
46+
severity #{data[:severity]}
3847
program minitest
3948
4049
<format>
@@ -43,22 +52,41 @@ def test_write
4352
</format>
4453
]
4554

46-
mock.proxy(RemoteSyslogSender::UdpSender).new("example.com", 5566, whinyerrors: true, program: "minitest", packet_size: 1024) do |sender|
47-
mock.proxy(sender).transmit("foo", facility: "user", severity: "debug", program: "minitest", hostname: "foo.com")
48-
end
55+
in_driver = create_driver_in_syslog %[
56+
@type syslog
57+
tag tag
58+
port 5566
59+
bind localhost
60+
]
4961

50-
d.run do
51-
d.feed("tag", Fluent::EventTime.now, {"message" => "foo"})
62+
in_driver.run(expect_records: 1, timeout: 10) do
63+
out_driver.run do
64+
out_driver.feed("tag", Fluent::EventTime.now, {"message" => "This is a test message."})
65+
end
5266
end
67+
68+
assert_equal 1, in_driver.events.length
69+
70+
tag, _, msg = in_driver.events[0]
71+
72+
expected_facility = "user"
73+
expected_severity = data[:expected_severity] || data[:severity]
74+
assert_equal("tag.#{expected_facility}.#{expected_severity}", tag)
75+
assert_equal("foo.com", msg["host"])
76+
assert_equal("minitest", msg["ident"])
77+
assert_equal("This is a test message.", msg["message"])
5378
end
5479

55-
def test_write_tcp
56-
d = create_driver %[
80+
data("debug", {severity: "debug"})
81+
data("warn", {severity: "warn"})
82+
data("warning", {severity: "warning", expected_severity: "warn"})
83+
def test_write_tcp(data)
84+
out_driver = create_driver_out_syslog %[
5785
@type remote_syslog
5886
hostname foo.com
59-
host example.com
60-
port 5566
61-
severity debug
87+
host localhost
88+
port 5567
89+
severity #{data[:severity]}
6290
program minitest
6391
6492
protocol tcp
@@ -69,17 +97,30 @@ def test_write_tcp
6997
</format>
7098
]
7199

72-
any_instance_of(RemoteSyslogSender::TcpSender) do |klass|
73-
mock(klass).connect
74-
end
100+
in_driver = create_driver_in_syslog %[
101+
@type syslog
102+
tag tag
103+
port 5567
104+
bind localhost
105+
protocol_type tcp
106+
]
75107

76-
mock.proxy(RemoteSyslogSender::TcpSender).new("example.com", 5566, whinyerrors: true, program: "minitest", tls: false, packet_size: 1024, timeout: nil, timeout_exception: false, keep_alive: false, keep_alive_cnt: nil, keep_alive_idle: nil, keep_alive_intvl: nil) do |sender|
77-
mock(sender).transmit("foo", facility: "user", severity: "debug", program: "minitest", hostname: "foo.com")
108+
in_driver.run(expect_records: 1, timeout: 10) do
109+
out_driver.run do
110+
out_driver.feed("tag", Fluent::EventTime.now, {"message" => "This is a test message."})
111+
end
78112
end
79113

80-
d.run do
81-
d.feed("tag", Fluent::EventTime.now, {"message" => "foo"})
82-
end
114+
assert_equal 1, in_driver.events.length
115+
116+
tag, _, msg = in_driver.events[0]
117+
118+
expected_facility = "user"
119+
expected_severity = data[:expected_severity] || data[:severity]
120+
assert_equal("tag.#{expected_facility}.#{expected_severity}", tag)
121+
assert_equal("foo.com", msg["host"])
122+
assert_equal("minitest", msg["ident"])
123+
assert_equal("This is a test message.", msg["message"])
83124
end
84125

85126
data("emerg", {in: "emerg", out: "emerg"})

0 commit comments

Comments
 (0)