riemann-dash/test/browser_config_test.rb

121 lines
3.9 KiB
Ruby
Raw Normal View History

require './test/test_helper'
2014-12-04 09:53:55 +00:00
require 'pp'
describe "Riemann::Dash::BrowserConfig" do
before do
@mock_backend = Minitest::Mock.new
Riemann::Dash::BrowserConfig.backend = @mock_backend
end
describe :read do
it "delegates to its backend" do
@mock_backend.expect :read, :return_value
Riemann::Dash::BrowserConfig.read
@mock_backend.verify
end
end
describe :update do
it "delegates to its backend" do
@mock_backend.expect :update, :return_value, [String]
Riemann::Dash::BrowserConfig.update("stuff to update")
@mock_backend.verify
end
end
2014-12-03 00:53:58 +00:00
describe :merge_configs do
before do
@first_config = {'server' => 'first_server', 'server_type' => 'first_type'}
@second_config = {'server' => 'second_server', 'server_type' => 'second_type'}
end
describe "when merging the server value" do
it "prioritises the value from the first config" do
merged_configs = Riemann::Dash::BrowserConfig.merge_configs(@first_config, @second_config)
2014-12-03 00:58:15 +00:00
assert_equal @first_config['server'], merged_configs['server']
2014-12-03 00:53:58 +00:00
end
it "uses the value from the second config if no other exists" do
2014-12-03 00:56:55 +00:00
merged_configs = Riemann::Dash::BrowserConfig.merge_configs({}, @second_config)
2014-12-03 00:53:58 +00:00
2014-12-03 00:58:15 +00:00
assert_equal @second_config['server'], merged_configs['server']
2014-12-03 00:53:58 +00:00
end
end
describe "when merging the server_type value" do
it "prioritises the value from the first config" do
merged_configs = Riemann::Dash::BrowserConfig.merge_configs(@first_config, @second_config)
2014-12-03 00:58:15 +00:00
assert_equal @first_config['server_type'], merged_configs['server_type']
2014-12-03 00:53:58 +00:00
end
it "uses the value from the second config if no other exists" do
2014-12-03 00:56:55 +00:00
merged_configs = Riemann::Dash::BrowserConfig.merge_configs({}, @second_config)
2014-12-03 00:53:58 +00:00
2014-12-03 00:58:15 +00:00
assert_equal @second_config['server_type'], merged_configs['server_type']
2014-12-03 00:53:58 +00:00
end
end
end
2014-12-04 09:53:55 +00:00
describe :index_by do
before do
@list = [{'name' => 'a'}, {'name' => 'b'}, {'name' => 'c'}]
end
it "returns the list of key/value pairs as a map indexed by the specified key/value" do
indexed_config = Riemann::Dash::BrowserConfig.index_by(lambda { |x| x['name'] }, @list)
assert_equal({'name' => 'a'}, indexed_config['a'])
assert_equal({'name' => 'b'}, indexed_config['b'])
assert_equal({'name' => 'c'}, indexed_config['c'])
end
end
2014-12-04 09:59:07 +00:00
describe :merge_workspace do
before do
2014-12-04 10:05:08 +00:00
@first_ws = {"view" => {"version" => 2}, "name" => "first"}
@second_ws = {"view" => {"version" => 3}, "name" => "second"}
2014-12-04 09:59:07 +00:00
end
it "prioritises the workspace with the higher version" do
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace(@first_ws, @second_ws)
assert_equal @second_ws, merged_workspace
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace(@second_ws, @first_ws)
assert_equal @second_ws, merged_workspace
end
2014-12-04 10:05:08 +00:00
it "prioritises any workspace over a nil workspace" do
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace(@first_ws, nil)
assert_equal @first_ws, merged_workspace
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace(nil, @first_ws)
assert_equal @first_ws, merged_workspace
end
it "prioritises any workspace with a version over a workspace without a version" do
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace(@first_ws, {"view" => {}})
assert_equal @first_ws, merged_workspace
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace({"view" => {}}, @first_ws)
assert_equal @first_ws, merged_workspace
end
it "prioritises the first workspace if both versions are equal" do
@second_ws['view']['version'] = @first_ws['view']['version']
merged_workspace = Riemann::Dash::BrowserConfig.merge_workspace(@first_ws, @second_ws)
assert_equal @first_ws, merged_workspace
end
2014-12-04 09:59:07 +00:00
end
end