Sha256: 4f6018537f6b71a63977a9551de0f4f91c9b83f8a482c7ad3fb8a425cd0d3276

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

# encoding: UTF-8

require 'vines'
require 'minitest/mock'
require 'test/unit'

class HandshakeTest < Test::Unit::TestCase
  def setup
    @stream = MiniTest::Mock.new
    @state = Vines::Stream::Component::Handshake.new(@stream)
  end

  def test_invalid_element
    node = node('<message/>')
    assert_raise(Vines::StreamErrors::NotAuthorized) { @state.node(node) }
  end

  def test_missing_text
    @stream.expect(:secret, 'secr3t')
    node = node('<handshake/>')
    assert_raise(Vines::StreamErrors::NotAuthorized) { @state.node(node) }
    assert @stream.verify
  end

  def test_invalid_secret
    @stream.expect(:secret, 'secr3t')
    node = node('<handshake>bogus</handshake>')
    assert_raise(Vines::StreamErrors::NotAuthorized) { @state.node(node) }
    assert @stream.verify
  end

  def test_valid_secret
    @stream.expect(:secret, 'secr3t')
    @stream.expect(:write, nil, ['<handshake/>'])
    @stream.expect(:advance, nil, [Vines::Stream::Component::Ready.new(@stream)])
    node = node('<handshake>secr3t</handshake>')
    assert_nothing_raised { @state.node(node) }
    assert @stream.verify
  end

  private

  def node(xml)
    Nokogiri::XML(xml).root
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vines-0.1.0 test/stream/component/handshake_test.rb