spec/pio/echo/reply_spec.rb in pio-0.6.0 vs spec/pio/echo/reply_spec.rb in pio-0.7.0
- old
+ new
@@ -2,19 +2,84 @@
require 'pio'
describe Pio::Echo::Reply do
describe '.new' do
- context 'with no additional data' do
- When(:echo_reply) do
- Pio::Echo::Reply.new(xid: 123)
+ context 'with no arguments' do
+ When(:echo_reply) { Pio::Echo::Reply.new }
+
+ Then { echo_reply.version == 1 }
+ Then { echo_reply.message_type == Pio::Echo::REPLY }
+ Then { echo_reply.message_length == 8 }
+ Then { echo_reply.transaction_id == 0 }
+ Then { echo_reply.xid == 0 }
+ Then { echo_reply.data == '' }
+ Then { echo_reply.to_binary == [1, 3, 0, 8, 0, 0, 0, 0].pack('C*') }
+ end
+
+ context 'with 123' do
+ When(:echo_reply) { Pio::Echo::Reply.new(123) }
+
+ Then { echo_reply.version == 1 }
+ Then { echo_reply.message_type == Pio::Echo::REPLY }
+ Then { echo_reply.message_length == 8 }
+ Then { echo_reply.transaction_id == 123 }
+ Then { echo_reply.xid == 123 }
+ Then { echo_reply.data == '' }
+ Then { echo_reply.to_binary == [1, 3, 0, 8, 0, 0, 0, 123].pack('C*') }
+ end
+
+ context 'with 2**32' do
+ When(:result) { Pio::Echo::Reply.new(2**32) }
+
+ Then do
+ pending 'check if xid is within 32bit range.'
+ result == Failure(ArgumentError)
end
+ end
- Then { echo_reply.class == Pio::Echo::Reply }
+ context 'with transaction_id: 123' do
+ When(:echo_reply) { Pio::Echo::Reply.new(transaction_id: 123) }
+
Then { echo_reply.version == 1 }
Then { echo_reply.message_type == Pio::Echo::REPLY }
Then { echo_reply.message_length == 8 }
+ Then { echo_reply.transaction_id == 123 }
Then { echo_reply.xid == 123 }
Then { echo_reply.data == '' }
+ Then { echo_reply.to_binary == [1, 3, 0, 8, 0, 0, 0, 123].pack('C*') }
+ end
+
+ context 'with xid: 123' do
+ When(:echo_reply) { Pio::Echo::Reply.new(xid: 123) }
+
+ Then { echo_reply.version == 1 }
+ Then { echo_reply.message_type == Pio::Echo::REPLY }
+ Then { echo_reply.message_length == 8 }
+ Then { echo_reply.transaction_id == 123 }
+ Then { echo_reply.xid == 123 }
+ Then { echo_reply.data == '' }
+ Then { echo_reply.to_binary == [1, 3, 0, 8, 0, 0, 0, 123].pack('C*') }
+ end
+
+ context "with transaction_id: 123, data: 'foobar'" do
+ When(:echo_reply) { Pio::Echo::Reply.new(xid: 123, data: 'foobar') }
+
+ Then { echo_reply.version == 1 }
+ Then { echo_reply.message_type == Pio::Echo::REPLY }
+ Then { echo_reply.message_length == 14 }
+ Then { echo_reply.transaction_id == 123 }
+ Then { echo_reply.xid == 123 }
+ Then { echo_reply.data == 'foobar' }
+ Then do
+ echo_reply.to_binary ==
+ [1, 3, 0, 14, 0, 0, 0, 123, 102, 111, 111, 98, 97, 114].pack('C*')
+ end
+ end
+
+ context 'with :INVALID_ARGUMENT' do
+ When(:result) { Pio::Echo::Reply.new(:INVALID_ARGUMENT) }
+
+ Then { result == Failure(TypeError) }
end
end
end