#!/usr/bin/env rspec require 'spec_helper' require File.dirname(__FILE__) + '/../../../../../plugins/mcollective/discovery/mc.rb' module MCollective class Discovery describe Mc do describe "#discover" do before do @reply = mock @reply.stubs(:payload).returns({:senderid => "rspec"}) @client = mock @client.stubs(:sendreq) @client.stubs(:unsubscribe) @client.stubs(:receive).returns(@reply) Log.stubs(:debug) end it "should send the ping request via the supplied client" do @client.expects(:sendreq).with("ping", "discovery", Util.empty_filter).returns("123456") Mc.discover(Util.empty_filter, 1, 1, @client) end it "should stop early if a limit is supplied" do @client.stubs(:receive).returns(@reply).times(10) Mc.discover(Util.empty_filter, 1, 10, @client).should == ("rspec," * 10).split(",") end it "should unsubscribe from the discovery reply source" do @client.expects(:unsubscribe).with("discovery", :reply) Mc.discover(Util.empty_filter, 1, 10, @client).should == ("rspec," * 10).split(",") end end end end end