Sha256: fba2ba8326df5cd2083480340a3512d6882272db2f941305bb1706014c3fcd21

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

require 'spec_helper'
require 'thunderer/messanger'

describe Thunderer::Messanger do
  let(:messanger) { Thunderer::Messanger }
  before { Thunderer::Messanger.reset_config }

  it 'default have nil uri' do
    expect(messanger.config['uri']).to eq(nil)
  end

  it 'default have nil use_ssl' do
    expect(messanger.config['use_ssl']).to eq(nil)
  end

  describe '#post' do
    subject { messanger.post(message) }

    context 'with default config' do
      let(:message) { double(:message) }

      specify do
        expect { subject }.to raise_error Thunderer::Messanger::ConfigurationError
      end

    end

    context 'with correct config' do
      before { Thunderer::Messanger.configure('http://localhost:3000') }
      let(:http_form) { double(:form) }
      let(:http) { double(:http) }
      let(:message) { 'Hello world' }
      before { allow(Net::HTTP::Post).to receive(:new).with('/').and_return(http_form) }
      before { allow(Net::HTTP).to receive(:new).with('localhost', 3000).and_return(http) }
      before { allow(http).to receive(:use_ssl=) }


      specify do
        expect(http_form).to receive(:set_form_data).with(message: message.to_json)
        expect(http).to receive(:start).and_yield(http)
        expect(http).to receive(:request).with(http_form).and_return(:result)
        expect(subject).to eq(:result)
      end

    end


  end


  describe '#configure' do

    it 'parse url and set configuration' do
      messanger.configure('http://google.ru')
      expect(messanger.config).not_to eq({})
    end

    it 'set use_ssl to false for http' do
      messanger.configure('http://google.ru')
      expect(messanger.config['use_ssl']).to eq(false)
    end

    it 'set use_ssl to false for https' do
      messanger.configure('https://google.ru')
      expect(messanger.config['use_ssl']).to eq(true)
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
thunderer-1.0.0 spec/thunderer/messanger_spec.rb