Sha256: 296e0e983a78e90e87fec9ddf009374348206954db06062e1dc1d8cf83a06b87
Contents?: true
Size: 1.35 KB
Versions: 3
Compression:
Stored size: 1.35 KB
Contents
RSpec.describe Message::Command do let(:type_code) { Message::Command::TYPE_CODE } let(:sender) { SecureRandom.uuid } let(:commandee_id) { SecureRandom.uuid } let(:args) { { thing: 'puppy' } } let(:details) { { name: 'TestCommand', args: args } } let(:binary_details) { Marshal.dump(details) } let(:string) { type_code + sender + commandee_id + binary_details } let(:message) { Message::Command.new(sender, commandee_id, details) } describe '.parse' do it 'should parse correctly' do message = Message::Command.parse string expect(message).to be_a Message::Command expect(message.sender).to eq sender expect(message.commandee_id).to eq commandee_id expect(message.details).to eq details end end describe '#name' do it 'should return the correct name' do expect(message.name).to eq 'TestCommand' end end describe '#to_command' do let(:command_instance) { double } let(:command_klass) { spy(new: command_instance) } it 'should build a Command object' do stub_const 'TestCommand', command_klass expect(message.to_command).to eq command_instance expect(command_klass).to have_received(:new).with args end end describe '#to_s' do it 'should serialize correctly' do serialized = message.to_s expect(serialized).to eq string end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aggro-0.0.4 | spec/lib/aggro/message/command_spec.rb |
aggro-0.0.3 | spec/lib/aggro/message/command_spec.rb |
aggro-0.0.2 | spec/lib/aggro/message/command_spec.rb |