spec/codecs/netflow_spec.rb in logstash-codec-netflow-4.0.2 vs spec/codecs/netflow_spec.rb in logstash-codec-netflow-4.1.0

- old
+ new

@@ -1154,9 +1154,74 @@ expect(JSON.parse(decode[0].to_json)).to eq(JSON.parse(json_events[0])) end end + context "Netflow 9 H3C Netstream with varstring" do + let(:data) do + packets = [] + packets << IO.read(File.join(File.dirname(__FILE__), "netflow9_test_h3c_netstream_varstring_tpl3281.dat"), :mode => "rb") + packets << IO.read(File.join(File.dirname(__FILE__), "netflow9_test_h3c_netstream_varstring_data3281.dat"), :mode => "rb") + end + + let(:json_events) do + events = [] + events << <<-END + { + "@version": "1", + "@timestamp": "2018-07-18T01:35:35.000Z", + "netflow": { + "in_pkts": 9, + "last_switched": "2018-07-18T01:35:03.999Z", + "direction": 0, + "first_switched": "2018-07-18T01:34:34.999Z", + "ipv4_dst_addr": "20.20.255.255", + "src_tos": 0, + "ipv4_src_addr": "20.20.20.20", + "output_snmp": 0, + "protocol": 17, + "l4_src_port": 137, + "ipv4_next_hop": "0.0.0.0", + "flowset_id": 3281, + "l4_dst_port": 137, + "input_snmp": 17, + "ip_protocol_version": 4, + "version": 9, + "sampling_algorithm": 0, + "forwarding_status": { + "status": 0, + "reason": 0 + }, + "tcp_flags": 0, + "sampling_interval": 0, + "flow_seq_num": 133, + "dst_traffic_index": 4294967295, + "src_mask": 32, + "src_as": 0, + "dst_as": 0, + "dst_mask": 32, + "VRFname": "", + "in_bytes": 702, + "src_traffic_index": 0 + } + } + END + events.map{|event| event.gsub(/\s+/, "")} + end + + it "should decode raw data" do + expect(decode.size).to eq(1) + expect(decode[0].get("[netflow][VRFname]")).to eq("") + expect(decode[0].get("[netflow][l4_src_port]")).to eq(137) + end + + it "should serialize to json" do + expect(JSON.parse(decode[0].to_json)).to eq(JSON.parse(json_events[0])) + end + + end + + context "Netflow 9 Fortigate FortiOS 54x appid" do let(:data) do packets = [] packets << IO.read(File.join(File.dirname(__FILE__), "netflow9_test_fortigate_fortios_542_appid_tpl258-269.dat"), :mode => "rb") packets << IO.read(File.join(File.dirname(__FILE__), "netflow9_test_fortigate_fortios_542_appid_data258_262.dat"), :mode => "rb")