Sha256: 02e912d58e4e405c5d2d908942f69dea5cd1de48cf6b91264756d8b44577800a

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

# encoding: utf-8

require 'pio'

describe Pio::Echo do
  describe '.read' do
    context 'with an Echo Request message' do
      Given(:echo_request_dump) do
        [1, 2, 0, 8, 0, 0, 0, 0].pack('C*')
      end

      When(:echo_request) do
        Pio::Echo.read echo_request_dump
      end

      Then { echo_request.class == Pio::Echo::Request }
      Then { echo_request.ofp_version == 1 }
      Then { echo_request.message_type == Pio::Echo::REQUEST }
      Then { echo_request.message_length == 8 }
      Then { echo_request.xid == 0 }
      Then { echo_request.data == '' }
      Then { echo_request.to_binary == echo_request_dump }
    end

    context 'with an Echo Reply message' do
      Given(:echo_reply_dump) do
        [1, 3, 0, 8, 0, 0, 0, 0].pack('C*')
      end

      When(:echo_reply) do
        Pio::Echo.read echo_reply_dump
      end

      Then { echo_reply.class == Pio::Echo::Reply }
      Then { echo_reply.ofp_version == 1 }
      Then { echo_reply.message_type == Pio::Echo::REPLY }
      Then { echo_reply.message_length == 8 }
      Then { echo_reply.xid == 0 }
      Then { echo_reply.data == '' }
      Then { echo_reply.to_binary == echo_reply_dump }
    end

    context 'with a Features Request message' do
      Given(:features_request_dump) { [1, 5, 0, 8, 0, 0, 0, 0].pack('C*') }

      When(:result) { Pio::Echo.read(features_request_dump) }

      Then { result == Failure(Pio::ParseError) }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pio-0.8.1 spec/pio/echo_spec.rb
pio-0.8.0 spec/pio/echo_spec.rb