test/plugin/test_out_indicative.rb in fluent-plugin-indicative-0.1.3 vs test/plugin/test_out_indicative.rb in fluent-plugin-indicative-0.1.4
- old
+ new
@@ -3,52 +3,82 @@
class IndicativeOutputTest < Test::Unit::TestCase
def setup
Fluent::Test.setup
end
- CONFIG = %[
+ STREAM_CONFIG = %[
api_key INDICATIVE_API_KEY
event_name_key event_name
event_time_key created_at
event_unique_id_keys user_id, session_id
]
- def create_driver(conf=CONFIG)
+ BUFFER_CONFIG = %[
+ api_key INDICATIVE_API_KEY
+ event_name_key event_name
+ event_time_key created_at
+ event_unique_id_keys user_id, session_id
+
+ <buffer>
+ chunk_limit_records 50
+ </buffer>
+
+ <format>
+ @type json
+ </format>
+ ]
+
+ def create_driver(conf=STREAM_CONFIG)
Fluent::Test::Driver::Output.new(Fluent::Plugin::IndicativeOutput).configure(conf)
end
def test_configure
assert_raise(Fluent::ConfigError) {
d = create_driver('')
}
- d = create_driver CONFIG
+ d = create_driver(STREAM_CONFIG)
assert_equal 'INDICATIVE_API_KEY', d.instance.api_key
assert_equal 'event_name', d.instance.event_name_key
assert_equal 'created_at', d.instance.event_time_key
assert_equal ['user_id', 'session_id'], d.instance.event_unique_id_keys
end
- def test_emit
- d = create_driver(CONFIG)
+ def test_emit_stream
+ d = create_driver(STREAM_CONFIG)
stub_request(:any, d.instance.api_url)
d.run(default_tag: 'test') do
d.feed({'event_name' => 'screen_view', 'created_at' => '2015-01-01T10:00:00.000Z', 'session_id' => 'a3bd2', 'user_id' => nil, 'screen' => {'id' => 'index'}})
end
events = d.events
assert_equal 0, events.length
assert_requested :post, d.instance.api_url,
headers: {'Content-Type' => 'application/json'}, body: {
'apiKey' => 'INDICATIVE_API_KEY',
- 'eventName' => 'screen_view',
- 'eventUniqueId' => 'a3bd2',
- 'properties' => {
- 'event_name' => 'screen_view',
- 'created_at' => '2015-01-01T10:00:00.000Z',
- 'session_id' => 'a3bd2',
- 'user_id' => nil,
- 'screen.id' => 'index'
- },
- 'eventTime' => '2015-01-01T10:00:00+00:00'
+ 'events' => [{
+ 'eventName' => 'screen_view',
+ 'eventUniqueId' => 'a3bd2',
+ 'properties' => {
+ 'event_name' => 'screen_view',
+ 'created_at' => '2015-01-01T10:00:00.000Z',
+ 'session_id' => 'a3bd2',
+ 'user_id' => nil,
+ 'screen.id' => 'index'
+ },
+ 'eventTime' => '2015-01-01T10:00:00+00:00'
+ }]
}.to_json, times: 1
+ end
+
+ def test_emit_buffer
+ d = create_driver(BUFFER_CONFIG)
+ stub_request(:any, d.instance.api_url)
+ d.run(default_tag: 'test') do
+ 20.times do
+ d.feed({'event_name' => 'screen_view', 'created_at' => '2015-01-01T10:00:00.000Z', 'session_id' => 'a3bd2', 'user_id' => nil, 'screen' => {'id' => 'index'}})
+ end
+ end
+ events = d.events
+ assert_equal 0, events.length
+ assert_requested :post, d.instance.api_url, times: 1
end
end