Sha256: 76ae28626491e70acf5f5ee63c470e7f670b070c88cbb95a7566a4136912ab03

Contents?: true

Size: 1.9 KB

Versions: 14

Compression:

Stored size: 1.9 KB

Contents

require 'helper'

describe Twitter::Streaming::MessageParser do

  subject do
    Twitter::Streaming::MessageParser
  end

  describe '.parse' do
    it 'returns a tweet if the data has an id' do
      data = {:id => 1}
      object = subject.parse(data)
      expect(object).to be_a Twitter::Tweet
      expect(object.id).to eq(1)
    end
    it 'returns an event if the data has an event' do
      data = {:event => 'favorite', :source => {:id => 1}, :target => {:id => 2}, :target_object => {:id => 1}}
      object = subject.parse(data)
      expect(object).to be_a Twitter::Streaming::Event
      expect(object.name).to eq(:favorite)
      expect(object.source).to be_a Twitter::User
      expect(object.source.id).to eq(1)
      expect(object.target).to be_a Twitter::User
      expect(object.target.id).to eq(2)
      expect(object.target_object).to be_a Twitter::Tweet
      expect(object.target_object.id).to eq(1)
    end
    it 'returns a direct message if the data has a direct_message' do
      data = {:direct_message => {:id => 1}}
      object = subject.parse(data)
      expect(object).to be_a Twitter::DirectMessage
      expect(object.id).to eq(1)
    end
    it 'returns a friend list if the data has friends' do
      data = {:friends => [1]}
      object = subject.parse(data)
      expect(object).to be_a Twitter::Streaming::FriendList
      expect(object.first).to eq(1)
    end
    it 'returns a deleted tweet if the data has a deleted status' do
      data = {:delete => {:status => {:id => 1}}}
      object = subject.parse(data)
      expect(object).to be_a Twitter::Streaming::DeletedTweet
      expect(object.id).to eq(1)
    end
    it 'returns a stall warning if the data has a warning' do
      data = {:warning => {:code => 'FALLING_BEHIND'}}
      object = subject.parse(data)
      expect(object).to be_a Twitter::Streaming::StallWarning
      expect(object.code).to eq('FALLING_BEHIND')
    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
twitter-5.11.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.10.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.9.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.8.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.7.1 spec/twitter/streaming/message_parser_spec.rb
twitter-5.7.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.6.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.5.1 spec/twitter/streaming/message_parser_spec.rb
twitter-5.5.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.4.1 spec/twitter/streaming/message_parser_spec.rb
twitter-5.4.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.3.1 spec/twitter/streaming/message_parser_spec.rb
twitter-5.3.0 spec/twitter/streaming/message_parser_spec.rb
twitter-5.2.0 spec/twitter/streaming/message_parser_spec.rb