spec/inputs/udp_spec.rb in logstash-input-udp-1.0.0 vs spec/inputs/udp_spec.rb in logstash-input-udp-2.0.1
- old
+ new
@@ -1,6 +1,54 @@
# encoding: utf-8
-require "logstash/devutils/rspec/spec_helper"
-require 'logstash/inputs/udp'
+require_relative "../spec_helper"
+require_relative "../support/client"
describe LogStash::Inputs::Udp do
+
+ before do
+ srand(RSpec.configuration.seed)
+ end
+
+ let(:port) { rand(1024..65535) }
+ subject { LogStash::Plugin.lookup("input", "udp").new({ "port" => port }) }
+
+ after :each do
+ subject.close rescue nil
+ end
+
+ describe "register" do
+ it "should register without errors" do
+ expect { subject.register }.to_not raise_error
+ end
+ end
+
+ describe "receive" do
+
+ let(:client) { LogStash::Inputs::Test::UDPClient.new(port) }
+ let(:nevents) { 10 }
+
+ let(:events) do
+ input(subject, nevents) do
+ nevents.times do |i|
+ client.send("msg #{i}")
+ end
+ end
+ end
+
+ before(:each) do
+ subject.register
+ end
+
+ it "should receive events been generated" do
+ expect(events.size).to be(nevents)
+ messages = events.map { |event| event["message"]}
+ messages.each do |message|
+ expect(message).to match(/msg \d+/)
+ end
+ end
+
+ end
+
+ it_behaves_like "an interruptible input plugin" do
+ let(:config) { { "port" => port } }
+ end
end