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