Sha256: 5b105d8bba492ea5cd3db04406ab7992772c782c5bf1298d85f1a547c1e7d9d6

Contents?: true

Size: 1.9 KB

Versions: 1

Compression:

Stored size: 1.9 KB

Contents

require 'spec_helper'
require 'pact/consumer/dsl'
require 'pact/consumer/configuration_dsl'

module Pact::Consumer::DSL
   describe Service do
      before do
         Pact.clear_configuration
         Pact::Consumer::AppManager.instance.stub(:register_mock_service_for)
      end
      describe "configure_consumer_contract_builder" do
         subject { 
            Service.new :mock_service do
               port 1234
               standalone true
               verify true
            end
         }

         let(:producer_name) { 'Mock Producer'}
         let(:consumer_contract_builder) { double('Pact::Consumer::ConsumerContractBuilder').as_null_object}
         let(:url) { "http://localhost:1234"}

         it "adds a verification to the Pact configuration" do
            Pact::Consumer::ConsumerContractBuilder.stub(:new).and_return(consumer_contract_builder)
            subject.configure_consumer_contract_builder({})
            consumer_contract_builder.should_receive(:verify)
            Pact.configuration.producer_verifications.first.call
         end

         context "when standalone" do
            it "does not register the app with the AppManager" do
               Pact::Consumer::AppManager.instance.should_not_receive(:register_mock_service_for)
               subject.configure_consumer_contract_builder({})
            end
         end
         context "when not standalone" do
            subject { 
               Service.new :mock_service do
                  port 1234
                  standalone false
                  verify true
               end
            }            
            it "registers the app with the AppManager" do
               Pact::Consumer::AppManager.instance.should_receive(:register_mock_service_for).with(producer_name, url)
               subject.configure_consumer_contract_builder({:producer_name => producer_name })
            end
         end         
      end
   end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pact-0.1.28 spec/lib/pact/consumer/dsl_spec.rb