Sha256: d7c5a3020eea77e58c8eeada8a134bd5b7954c44194704ee8992b416d9851690

Contents?: true

Size: 1.4 KB

Versions: 4

Compression:

Stored size: 1.4 KB

Contents

require 'spec_helper'

describe JobDispatch::Broker::Socket do

  subject { JobDispatch::Broker::Socket.new('tcp://localhost:1999') }

  context "Reading messages from a worker" do
    before :each do
      @socket = double('Socket')
      subject.stub(:socket => @socket)
    end

    context "with a valid message" do
      before :each do
        message = ZMQ::Message.new
        message.addstr(JSON.dump({command: 'ready', queue: 'my_queue'}))
        message.wrap(ZMQ::Frame('my_worker_id'))
        @socket.stub(:recv_message => message)
        @command = subject.read_command
      end

      it "returns a Command" do
        expect(@command).to be_a(JobDispatch::Broker::Command)
      end

      it "reads the command" do
        expect(@command.parameters[:command]).to eq('ready')
      end

      it "reads the worker id" do
        expect(@command.worker_id.to_sym).to eq(:my_worker_id)
      end
    end

    context "with an invalid message" do
      before :each do
        message = ZMQ::Message.new
        message.addstr("Hello")
        message.wrap(ZMQ::Frame('my_worker_id'))
        @socket.stub(:recv_message => message)
        @command = subject.read_command
      end

      it "returns a Command" do
        expect(@command).to be_a(JobDispatch::Broker::Command)
      end

      it "reads the worker id" do
        expect(@command.worker_id.to_sym).to eq(:my_worker_id)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
job_dispatch-0.2.0 spec/job_dispatch/broker/socket_spec.rb
job_dispatch-0.1.0 spec/job_dispatch/broker/socket_spec.rb
job_dispatch-0.0.2 spec/job_dispatch/broker/socket_spec.rb
job_dispatch-0.0.1 spec/job_dispatch/broker/socket_spec.rb