Sha256: 58e4cbb45bc84a5acfce3967aaa81753f7f262743e7c9abed42753d8d77fdc39

Contents?: true

Size: 1.73 KB

Versions: 27

Compression:

Stored size: 1.73 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

# Let ActiveSupport's auto-loading make sure the testing gateway's there.
# require complains of redefine on certain Rubies, (looking at you REE)
ActiveMerchant::Billing::BogusGateway

class ActiveMerchant::Billing::BogusGateway
  # Testing class doesn't have this, but we instrument it for other gateways
  def update(*_)
  end
end

require 'newrelic_rpm'

class ActiveMerchantTest < Minitest::Test

  attr_reader :gateway

  include MultiverseHelpers

  setup_and_teardown_agent do
    @gateway = ActiveMerchant::Billing::BogusGateway.new
  end

  # Methods with parameters (money, paysource) can just be added to this list
  [:authorize, :purchase, :credit, :capture, :recurring, :update].each do |operation|
    define_method("test_#{operation}") do
      assert_merchant_transaction(operation)
    end
  end

  # Tests for methods that require more specific parameters should go here
  def test_void
    assert_merchant_transaction(:void, REFERENCE)
  end

  def test_store
    assert_merchant_transaction(:store, PAYSOURCE)
  end

  def test_unstore
    assert_merchant_transaction(:unstore, "1")
  end

  # Helper
  PAYSOURCE = 1
  REFERENCE = 3

  def assert_merchant_transaction(operation, *args)
    in_transaction('txn') do
      # Default arguments if not provided by test
      args = [100, PAYSOURCE] if args.empty?

      gateway.send(operation, *args)
    end
    assert_metrics_recorded([["ActiveMerchant/gateway/BogusGateway/#{operation}", "txn"],
                              "ActiveMerchant/gateway/BogusGateway",
                              "ActiveMerchant/operation/#{operation}"])
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
newrelic_rpm-4.1.0.333 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-4.0.0.332 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.18.1.330 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.18.0.329 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.17.2.327 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.17.1.326 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.17.0.325 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.16.3.323 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.16.2.321 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.16.1.320 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.16.0.318 test/multiverse/suites/activemerchant/activemerchant_test.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.15.2.317 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.15.1.316 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.15.0.314 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.14.3.313 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.14.2.312 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.14.1.311 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.14.0.305 test/multiverse/suites/activemerchant/activemerchant_test.rb
newrelic_rpm-3.13.2.302 test/multiverse/suites/activemerchant/activemerchant_test.rb