require 'spec_helper' require "logstash/plugin" require "logstash/json" describe "inputs/neo4j" do let(:path) { "spec/fixtures/graph.db" } let(:query) { "MATCH (p:`Person`)-[r]->(m:`Movie`) WHERE m.released = 2000 RETURN *" } let(:plugin) { LogStash::Plugin.lookup("input", "neo4j").new( {"path" => path, "query" => query} ) } it "register without errors" do expect { plugin.register }.to_not raise_error end it "teardown without errors" do expect { plugin.teardown }.to_not raise_error end context "event retrieval" do let(:logstash_queue) { Queue.new } before do plugin.register plugin.run logstash_queue end it "retrieve data from neo4j" do expect(logstash_queue.size).to eq(24) end it "retrieve data in the expected format" do while(!logstash_queue.empty?) element = logstash_queue.pop message = JSON.parse(element["message"]) expect(message["props"]["released"]).to eq(2000) end end end end