mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-08 07:17:07 +02:00
77 lines
2.2 KiB
Ruby
77 lines
2.2 KiB
Ruby
require "test_helper"
|
|
|
|
class FluentGemTest < ActiveSupport::TestCase
|
|
|
|
data("no arguments" => [],
|
|
"1 argument" => ["plugin-foo"],
|
|
"2 arguments" => ["plugin-foo", "--no-document"])
|
|
test "install" do |args|
|
|
if args.empty?
|
|
mock(FluentGem).run("install")
|
|
FluentGem.install
|
|
else
|
|
mock(FluentGem).run("install", *args)
|
|
FluentGem.install(*args)
|
|
end
|
|
end
|
|
|
|
data("no arguments" => [],
|
|
"1 argument" => ["plugin-foo"],
|
|
"2 arguments" => ["plugin-foo", "--no-document"])
|
|
test "uninstall" do |args|
|
|
if args.empty?
|
|
mock(FluentGem).run("uninstall")
|
|
FluentGem.uninstall
|
|
else
|
|
mock(FluentGem).run("uninstall", *args)
|
|
FluentGem.uninstall(*args)
|
|
end
|
|
end
|
|
|
|
data("no list" => "",
|
|
"some lines" => <<-GEM_LIST.strip_heredoc)
|
|
dummy (3.3.3)
|
|
fluent-plugin-foo (0.1.2)
|
|
more_dummy (0.0.1)
|
|
GEM_LIST
|
|
test "list" do |gem_list|
|
|
stub(FluentGem).gem { "gem" }
|
|
stub(FluentGem).__double_definition_create__.call(:`, "gem list 2>&1") { gem_list }
|
|
assert_equal(gem_list.lines.to_a, FluentGem.list)
|
|
end
|
|
|
|
sub_test_case("run") do
|
|
test "success" do
|
|
stub(FluentGem).gem { "gem" }
|
|
args = ["install", "foobar"]
|
|
stub(FluentGem).system("gem", *args) { true }
|
|
assert_true(FluentGem.run(*args))
|
|
end
|
|
|
|
test "failure" do
|
|
stub(FluentGem).gem { "gem" }
|
|
args = ["install", "foobar"]
|
|
stub(FluentGem).system("gem", *args) { false }
|
|
assert_raise(FluentGem::GemError) do
|
|
FluentGem.run(*args)
|
|
end
|
|
end
|
|
end
|
|
|
|
sub_test_case "gem" do
|
|
test "any instance not setup yet" do
|
|
assert_equal("fluent-gem", FluentGem.gem)
|
|
end
|
|
|
|
test "fluentd setup" do
|
|
stub(Fluentd).instance { Fluentd.new(id: nil, variant: "fluentd_gem", log_file: "dummy.log", pid_file: "dummy.pid", config_file: "dummy.conf") }
|
|
assert_equal("fluent-gem", FluentGem.gem)
|
|
end
|
|
|
|
test "td-agent 3 setup" do
|
|
stub(Fluentd).instance { Fluentd.new(id: nil, variant: "td_agent", log_file: "dummy.log", pid_file: "dummy.pid", config_file: "dummy.conf") }
|
|
assert_equal(FluentGem.detect_td_agent_gem, FluentGem.gem)
|
|
end
|
|
end
|
|
end
|