spec/inputs/gelf_spec.rb in logstash-input-gelf-2.0.5 vs spec/inputs/gelf_spec.rb in logstash-input-gelf-2.0.7

- old
+ new

@@ -144,6 +144,44 @@ event = LogStash::Inputs::Gelf.new_event("{\"timestamp\":946702800.123456}", "dummy") expect(event.timestamp.usec).to be_within(1000).of(123456) end end + + context "when an invalid JSON is fed to the listener" do + subject { LogStash::Inputs::Gelf.new_event(message, "host") } + let(:message) { "Invalid JSON message" } + if LogStash::Event.respond_to?(:from_java) + context "default :from_json parser output" do + it { should be_a(LogStash::Event) } + + it "falls back to plain-text" do + expect(subject["message"]).to eq(message) + end + + it "tags message with _jsonparsefailure" do + expect(subject["tags"]).to include("_jsonparsefailure") + end + + it "tags message with _fromjsonparser" do + expect(subject["tags"]).to include("_fromjsonparser") + end + end + else + context "legacy JSON parser output" do + it { should be_a(LogStash::Event) } + + it "falls back to plain-text" do + expect(subject["message"]).to eq(message) + end + + it "tags message with _jsonparsefailure" do + expect(subject["tags"]).to include("_jsonparsefailure") + end + + it "tags message with _legacyjsonparser" do + expect(subject["tags"]).to include("_legacyjsonparser") + end + end + end + end end