Sha256: 1476fca0d95a51de3fff14faa2ba7b85acf7d6320c868fd326a33ff3eae94f8f

Contents?: true

Size: 1.84 KB

Versions: 7

Compression:

Stored size: 1.84 KB

Contents

# encoding: utf-8

require 'spec_helper'

module Punchblock
  module Translator
    class Asterisk
      module Component
        describe StopByRedirect do

          class MockComponent < Component
            include StopByRedirect
            def set_complete
              @complete = true
            end
          end

          let(:mock_call) { mock 'Call', :id => 'foo' }
          subject { MockComponent.new Hash.new, mock_call }

          describe "#execute_command" do
            context "with a command it does not understand" do
              let(:command) { Punchblock::Component::Output::Pause.new }

              before { command.request! }
              it "returns a ProtocolError response" do
                subject.execute_command command
                command.response(0.1).should be_a ProtocolError
              end
            end

            context "with a Stop command" do
              let(:command) { Punchblock::Component::Stop.new }

              before do
                command.request!
              end

              it "sets the command response to true" do
                mock_call.expects(:redirect_back!)
                mock_call.expects(:register_handler).with do |type, *guards|
                  type.should be == :ami
                  guards.should have(2).guards
                  guards[0].should be_a Proc
                  guards[1].should be == {:name => 'AsyncAGI'}
                end

                subject.execute_command command
                command.response(0.1).should be == true
              end

              it "returns an error if the component is already complete" do
                subject.set_complete
                subject.execute_command command
                command.response(0.1).should be_a ProtocolError
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
punchblock-1.6.1 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb
punchblock-1.6.0 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb
punchblock-1.5.3 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb
punchblock-1.5.2 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb
punchblock-1.5.1 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb
punchblock-1.5.0 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb
punchblock-1.4.1 spec/punchblock/translator/asterisk/component/stop_by_redirect_spec.rb