Skip to content

Commit 57b970e

Browse files
committed
adds tests for ruby use of Event#get(reference, defaultValue)
also adds overloaded `Event#getField(FieldReference, Object)`, to allow us to prefer using `FieldReference` to their `String` representations.
1 parent 9baf5b1 commit 57b970e

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

logstash-core/spec/logstash/event_spec.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,26 @@
7676
expect(e.get("[foo][-1]")).to eq(list[-1])
7777
end
7878
end
79+
80+
context("with default value") do
81+
let(:event) do
82+
LogStash::Event.new({"foo" => "bar", "false-value" => false, "nil-value" => nil})
83+
end
84+
85+
it "should get values that exist" do
86+
expect(event.get("foo", "supplied-default")).to eq("bar")
87+
expect(event.get("[foo]", "supplied-default")).to eq("bar")
88+
expect(event.get("false-value", "supplied-default")).to eq(false)
89+
expect(event.get("[false-value]", "supplied-default")).to eq(false)
90+
expect(event.get("nil-value", "supplied-default")).to eq(nil)
91+
expect(event.get("[nil-value]", "supplied-default")).to eq(nil)
92+
end
93+
94+
it "should fall back to default value when field doesn't exist" do
95+
expect(event.get("not-set", "supplied-default")).to eq("supplied-default")
96+
expect(event.get("[not-set]", "supplied-default")).to eq("supplied-default")
97+
end
98+
end
7999
end
80100

81101
context "#set" do

logstash-core/src/main/java/org/logstash/Event.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,11 @@ public Object getField(final String reference) {
132132
}
133133

134134
public Object getField(final String reference, final Object defaultValue) {
135-
return includes(reference) ? getField(reference) : defaultValue;
135+
return getField(FieldReference.from(reference), defaultValue);
136+
}
137+
138+
public Object getField(final FieldReference reference, final Object defaultValue) {
139+
return includes(reference) ? getUnconvertedField(reference) : defaultValue;
136140
}
137141

138142
public Object getUnconvertedField(final String reference) {

0 commit comments

Comments
 (0)