Sha256: 8b5335337758b81757d6d536764a2f8a912f011c9d867679650b09a6f2cbe431

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

require 'spec_helper'

class MyMessage < Toq::Message
    attr_accessor :foo
    attr_accessor :boo

    def transmit?( attr )
        attr == :@boo
    end
end

describe Toq::Message do
    let(:options) { { foo: 'foo val', boo: 'boo val' }}
    subject { MyMessage.new( options ) }

    describe '#initialize' do
        it 'sets attributes' do
            subject.foo == options[:foo]
            subject.boo == options[:boo]
        end
    end

    describe '#merge!' do
        it 'assigns the attribute values of the provided object to self' do
            opts = { foo: 'my foo' }
            my_msg = MyMessage.new( opts )

            subject.merge!( my_msg )

            subject.foo == opts[:foo]
            subject.boo == options[:boo]
        end
    end

    describe '#prepare_for_tx' do
        it 'converts self into a hash' do
            subject.prepare_for_tx.class.should == Hash
        end

        it 'skips attributes based on #transmit?' do
            subject.prepare_for_tx.should include 'boo'
            subject.prepare_for_tx.should_not include 'callback_id'
            subject.prepare_for_tx.should_not include 'foo'
        end
    end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
toq-0.1.0 spec/toq/message_spec.rb
toq-0.0.4.1 spec/toq/message_spec.rb
toq-0.0.4 spec/toq/message_spec.rb
toq-0.0.3 spec/toq/message_spec.rb
toq-0.0.2 spec/toq/message_spec.rb
toq-0.0.1 spec/toq/message_spec.rb