Sha256: 978380aa8e77843e02282e2e4fac8364537f7b577f332dc027e37453cbc4953b

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require_relative '../spec_helper'

module Kamerling describe Handler do
  describe '#handle' do
    fakes :addr, :receiver, :registrar
    let(:handler) { Handler.new receiver: receiver, registrar: registrar }

    it 'handles RGST inputs' do
      input = 'RGST' + "\0" * 12 + '16B client  UUID16B project UUID'
      client_uuid  = UUID['16B client  UUID']
      project_uuid = UUID['16B project UUID']
      handler.handle input, addr
      args = {
        addr:         addr,
        client_uuid:  client_uuid,
        project_uuid: project_uuid,
      }
      registrar.must_have_received :register, [args]
    end

    it 'handles RSLT inputs' do
      input = 'RSLT' + "\0" * 12 +
        '16B client  UUID16B project UUID16B task    UUIDdata'
      client_uuid = UUID['16B client  UUID']
      task_uuid   = UUID['16B task    UUID']
      handler.handle input, addr
      args = {
        addr:        addr,
        client_uuid: client_uuid,
        data:        'data',
        task_uuid:   task_uuid,
      }
      receiver.must_have_received :receive, [args]
    end

    it 'raises on unknown inputs' do
      ex = -> { handler.handle 'MESS', addr }.must_raise Handler::UnknownInput
      ex.message.must_equal 'MESS'
    end
  end
end end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kamerling-0.0.2 spec/kamerling/handler_spec.rb