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