Sha256: d9c2548a53748d3f6c040f5044379a7b890d94927b50f59841bef46d4a660a89

Contents?: true

Size: 1.58 KB

Versions: 19

Compression:

Stored size: 1.58 KB

Contents

# encoding: utf-8

require 'spec_helper'

module Punchblock
  module Command
    describe Reject do
      it 'registers itself' do
        RayoNode.class_from_registration(:reject, 'urn:xmpp:rayo:1').should be == Reject
      end

      describe "when setting options in initializer" do
        subject { Reject.new :reason => :busy, :headers => { :x_skill => 'agent', :x_customer_id => 8877 } }

        it_should_behave_like 'command_headers'

        its(:reason) { should be == :busy }
      end

      describe "from a stanza" do
        let :stanza do
          <<-MESSAGE
<reject xmlns='urn:xmpp:rayo:1'>
  <busy />
  <!-- Sample Headers (optional) -->
  <header name="x-reason-internal" value="bad-skill" />
</reject>
          MESSAGE
        end

        subject { RayoNode.import parse_stanza(stanza).root, '9f00061', '1' }

        it { should be_instance_of Reject }

        its(:reason) { should be == :busy }
        its(:headers_hash) { should be == { :x_reason_internal => 'bad-skill' } }
      end

      describe "with the reason" do
        [nil, :decline, :busy, :error].each do |reason|
          describe reason do
            subject { Reject.new :reason => reason }

            its(:reason) { should be == reason }
          end
        end

        describe "no reason" do
          subject { Reject.new }

          its(:reason) { should be_nil }
        end

        describe "blahblahblah" do
          it "should raise an error" do
            expect { Reject.new(:reason => :blahblahblah) }.to raise_error ArgumentError
          end
        end
      end
    end
  end
end # Punchblock

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
punchblock-1.9.4 spec/punchblock/command/reject_spec.rb
punchblock-1.9.3 spec/punchblock/command/reject_spec.rb
punchblock-1.9.2 spec/punchblock/command/reject_spec.rb
punchblock-1.9.1 spec/punchblock/command/reject_spec.rb
punchblock-1.9.0 spec/punchblock/command/reject_spec.rb
punchblock-1.8.2 spec/punchblock/command/reject_spec.rb
punchblock-1.8.1 spec/punchblock/command/reject_spec.rb
punchblock-1.8.0 spec/punchblock/command/reject_spec.rb
punchblock-1.7.1 spec/punchblock/command/reject_spec.rb
punchblock-1.7.0 spec/punchblock/command/reject_spec.rb
punchblock-1.6.1 spec/punchblock/command/reject_spec.rb
punchblock-1.6.0 spec/punchblock/command/reject_spec.rb
punchblock-1.5.3 spec/punchblock/command/reject_spec.rb
punchblock-1.5.2 spec/punchblock/command/reject_spec.rb
punchblock-1.5.1 spec/punchblock/command/reject_spec.rb
punchblock-1.5.0 spec/punchblock/command/reject_spec.rb
punchblock-1.4.1 spec/punchblock/command/reject_spec.rb
punchblock-1.4.0 spec/punchblock/command/reject_spec.rb
punchblock-1.3.0 spec/punchblock/command/reject_spec.rb