Sha256: 2d53e02b8a6ce690fb7ec3807ef963ce96573cc44460001c0649772305b19597

Contents?: true

Size: 988 Bytes

Versions: 3

Compression:

Stored size: 988 Bytes

Contents

module GooglePubsubEnhancer::Spec
  module ClassMethods
    def __setup_pubsub!
      let(:messages) { [] }
      let(:pubsub) {double "pubsub"}
      let(:publisher) { double "publisher"}
      let(:subscription) { double 'subscription'}
      let(:google_messages) {messages.map { |m| Google::Cloud::Pubsub::Message.new(m.to_s)}}
      before do
        ENV['PUBSUB_KEYFILE_JSON'] = JSON.dump(project_id: 'cica')
        allow(Google::Cloud::Pubsub).to receive(:new).and_return(pubsub)
        allow(pubsub).to receive(:publish).and_yield(publisher)
        allow(pubsub).to receive(:subscription).and_return subscription
        allow(subscription).to receive(:pull).and_return(google_messages, nil)
        allow(publisher).to receive(:publish)
        allow(subscription).to receive(:acknowledge)
      end

      after do
        ENV.delete 'PUBSUB_KEYFILE_JSON'
      end
    end
  end

  def self.included(klass)
    klass.extend ClassMethods
    klass.__setup_pubsub!
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
google-pubsub-enhancer-0.5.5 lib/google_pubsub_enhancer/spec.rb
google-pubsub-enhancer-0.5.4 lib/google_pubsub_enhancer/spec.rb
google-pubsub-enhancer-0.5.3 lib/google_pubsub_enhancer/spec.rb