require 'helper'
require 'fluent/test/driver/output'
require 'fluent/plugin/out_twitter'
class TwitterOutputTest < Test::Unit::TestCase
def setup
Fluent::Test.setup
end
CONFIG = %[
consumer_key CONSUMER_KEY
consumer_secret CONSUMER_SECRET
access_token ACCESS_TOKEN
access_token_secret ACCESS_TOKEN_SECRET
]
def create_driver(conf = CONFIG)
Fluent::Test::Driver::Output.new(Fluent::Plugin::TwitterOutput).configure(conf)
end
sub_test_case "configure" do
def test_empty
assert_raise(Fluent::ConfigError) {
create_driver('')
}
end
def test_configure
d = create_driver %[
consumer_key CONSUMER_KEY
consumer_secret CONSUMER_SECRET
access_token ACCESS_TOKEN
access_token_secret ACCESS_TOKEN_SECRET
]
assert_equal 'CONSUMER_KEY', d.instance.consumer_key
assert_equal 'CONSUMER_SECRET', d.instance.consumer_secret
assert_equal 'ACCESS_TOKEN', d.instance.access_token
assert_equal 'ACCESS_TOKEN_SECRET', d.instance.access_token_secret
end
def test_proxy
conf = %[
consumer_key CONSUMER_KEY
consumer_secret CONSUMER_SECRET
access_token ACCESS_TOKEN
access_token_secret ACCESS_TOKEN_SECRET
host proxy.example.com
port 8080
username proxyuser
password proxypass
]
d = create_driver(conf)
expected = {
host: "proxy.example.com",
port: "8080",
username: "proxyuser",
password: "proxypass"
}
assert_equal(expected, d.instance.proxy.to_h)
end
def test_multi_proxy
conf = %[
consumer_key CONSUMER_KEY
consumer_secret CONSUMER_SECRET
access_token ACCESS_TOKEN
access_token_secret ACCESS_TOKEN_SECRET
host proxy.example.com
port 8080
username proxyuser
password proxypass
host proxy.example.com
port 8081
username proxyuser
password proxypass
]
assert_raise(Fluent::ConfigError) do
create_driver(conf)
end
end
end
end