Sha256: e58c64dd4d3167821037f82044016b283aad5cc371170266b7c53eb4e931b6d8

Contents?: true

Size: 1.84 KB

Versions: 4

Compression:

Stored size: 1.84 KB

Contents

require File.join(File.dirname(__FILE__), *%w[.. .. spec_helper])

describe Blather::Stanza::Message do
  it 'registers itself' do
    Blather::XMPPNode.class_from_registration(:message, nil).must_equal Blather::Stanza::Message
  end

  it 'must be importable' do
    doc = parse_stanza <<-XML
      <message
          to='romeo@example.net'
          from='juliet@example.com/balcony'
          type='chat'
          xml:lang='en'>
        <body>Wherefore art thou, Romeo?</body>
      </message>
    XML
    Blather::XMPPNode.import(doc.root).must_be_instance_of Blather::Stanza::Message
  end

  it 'provides "attr_accessor" for body' do
    s = Blather::Stanza::Message.new
    s.body.must_be_nil
    s.xpath('body').must_be_empty

    s.body = 'test message'
    s.body.wont_be_nil
    s.xpath('body').wont_be_empty
  end

  it 'provides "attr_accessor" for subject' do
    s = Blather::Stanza::Message.new
    s.subject.must_be_nil
    s.xpath('subject').must_be_empty

    s.subject = 'test subject'
    s.subject.wont_be_nil
    s.xpath('subject').wont_be_empty
  end

  it 'provides "attr_accessor" for thread' do
    s = Blather::Stanza::Message.new
    s.thread.must_be_nil
    s.xpath('thread').must_be_empty

    s.thread = 1234
    s.thread.wont_be_nil
    s.xpath('thread').wont_be_empty
  end

  it 'ensures type is one of Blather::Stanza::Message::VALID_TYPES' do
    lambda { Blather::Stanza::Message.new nil, nil, :invalid_type_name }.must_raise(Blather::ArgumentError)

    Blather::Stanza::Message::VALID_TYPES.each do |valid_type|
      msg = Blather::Stanza::Message.new nil, nil, valid_type
      msg.type.must_equal valid_type
    end
  end

  Blather::Stanza::Message::VALID_TYPES.each do |valid_type|
    it "provides a helper (#{valid_type}?) for type #{valid_type}" do
      Blather::Stanza::Message.new.must_respond_to :"#{valid_type}?"
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
sprsquish-blather-0.4.0 spec/blather/stanza/message_spec.rb
sprsquish-blather-0.4.1 spec/blather/stanza/message_spec.rb
blather-0.4.1 spec/blather/stanza/message_spec.rb
blather-0.4.0 spec/blather/stanza/message_spec.rb