spec/outputs/charrington_spec.rb in logstash-output-charrington-0.3.0 vs spec/outputs/charrington_spec.rb in logstash-output-charrington-0.3.1

- old
+ new

@@ -7,11 +7,11 @@ describe 'a new payload with one event' do let(:config) do <<-CONFIG input { generator { - message => '{"app_name": "Web App", "event": "From Agent", "meta": { "type": "XML" } }' + message => '{"app_name": "Web App", "event": "schemaless", "meta": { "type": "XML" } }' codec => 'json' count => 1 } } @@ -23,25 +23,25 @@ } CONFIG end it 'creates a table and inserts a record' do - drop_table('from_agent') + drop_table('schemaless') run_pipeline - expect(query('SELECT * FROM from_agent')).to match_array([{id: "1", app_name: "Web App", event: "From Agent", inserted_at: a_kind_of(String), :meta_type => "XML"}]) - expect(query('SELECT COUNT(1) FROM from_agent').first[:count]).to eq("1") + expect(query('SELECT * FROM schemaless')).to match_array([{id: "1", app_name: "Web App", event: "schemaless", inserted_at: a_kind_of(String), :meta_type => "XML"}]) + expect(query('SELECT COUNT(1) FROM schemaless').first[:count]).to eq("1") end end describe '2 event payloads with different metadata' do let(:config) do <<-CONFIG input { generator { lines => [ - '{"app_name": "Web App", "event": "From Agent", "meta": { "type": "XML" } }', - '{"app_name": "Web App", "event": "From Agent", "meta": { "type": "XML", "file_name": "virus.pdf" } }' + '{"app_name": "Web App", "event": "metadata", "meta": { "type": "XML" } }', + '{"app_name": "Web App", "event": "metadata", "meta": { "type": "XML", "file_name": "virus.pdf" } }' ] codec => 'json' count => 1 } } @@ -54,26 +54,26 @@ } CONFIG end it 'creates a table and inserts the first record and alters the table for the second record' do - drop_table('from_agent') + drop_table('metadata') run_pipeline - expect(query('SELECT * FROM from_agent')).to match_array([ - {app_name: 'Web App', event: 'From Agent', id: '1', inserted_at: a_kind_of(String), meta_file_name: nil, meta_type: 'XML'}, - {app_name: 'Web App', event: 'From Agent', id: '2', inserted_at: a_kind_of(String), meta_file_name: 'virus.pdf', meta_type: 'XML'} + expect(query('SELECT * FROM metadata')).to match_array([ + {app_name: 'Web App', event: 'metadata', id: '1', inserted_at: a_kind_of(String), meta_file_name: nil, meta_type: 'XML'}, + {app_name: 'Web App', event: 'metadata', id: '2', inserted_at: a_kind_of(String), meta_file_name: 'virus.pdf', meta_type: 'XML'} ]) - expect(query('SELECT COUNT(1) FROM from_agent').first[:count]).to eq("2") + expect(query('SELECT COUNT(1) FROM metadata').first[:count]).to eq("2") end end describe 'event payload for an existing table with existing data' do let(:config) do <<-CONFIG input { generator { - message => '{"app_name": "Web App", "event": "From Agent", "meta": { "type": "XML" } }' + message => '{"app_name": "Web App", "event": "existing", "meta": { "type": "XML" } }' codec => 'json' count => 1 } } @@ -86,18 +86,18 @@ CONFIG end it 'can insert into an existing table' do # setup pre-existing data - drop_table('from_agent') - create_table('CREATE TABLE from_agent (id SERIAL PRIMARY KEY, inserted_at TIMESTAMP DEFAULT NOW(), app_name VARCHAR(255))') - insert("INSERT INTO from_agent (app_name) VALUES ('Not Agent')") - expect(query('SELECT * FROM from_agent')).to match_array([{id: "1", inserted_at: a_kind_of(String), app_name: "Not Agent"}]) + drop_table('existing') + create_table('CREATE TABLE existing (id SERIAL PRIMARY KEY, inserted_at TIMESTAMP DEFAULT NOW(), app_name VARCHAR(255))') + insert("INSERT INTO existing (app_name) VALUES ('Not Agent')") + expect(query('SELECT * FROM existing')).to match_array([{id: "1", inserted_at: a_kind_of(String), app_name: "Not Agent"}]) run_pipeline - expect(query('SELECT * FROM from_agent')).to match_array([ + expect(query('SELECT * FROM existing')).to match_array([ {id: '1', app_name: 'Not Agent', event: nil, inserted_at: a_kind_of(String), meta_type: nil}, - {id: '2', app_name: 'Web App', event: 'From Agent', inserted_at: a_kind_of(String), meta_type: 'XML'} + {id: '2', app_name: 'Web App', event: 'existing', inserted_at: a_kind_of(String), meta_type: 'XML'} ]) end end describe '2 event payloads with different metadata and different schema' do