Sha256: 0c2f73f86441ccf4e874f9412821d8a404183293559e0f353bb15f087c2a8195

Contents?: true

Size: 1.75 KB

Versions: 15

Compression:

Stored size: 1.75 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.

require File.expand_path(File.join(File.dirname(__FILE__),'..','..','test_helper'))
require 'new_relic/agent/aws_info'

module NewRelic::Agent
  class AWSInfoTest < Minitest::Test

    def setup
      NewRelic::Agent.drop_buffered_data
    end

    test_cases = load_cross_agent_test("aws")
    test_cases.each do |test_case|
      testname, uris, expected_vendors_hash, expected_metrics = test_case.values_at 'testname', 'uris', 'expected_vendors_hash', 'expected_metrics'

      define_method("test_#{testname.gsub(/\W/, "_")}") do
        stub_responses(uris)
        assert_valid_vendors_hash(expected_vendors_hash)
        assert_metrics_recorded(expected_metrics) if expected_metrics
      end
    end

    def test_assert_logging_with_invalid_data
      Net::HTTP.stubs(:get).returns("j" * 1000)

      NewRelic::Agent.logger.stubs(:debug)
      NewRelic::Agent.logger.expects(:debug).with(anything)

      AWSInfo.new
    end

    def method_from_uri(uri)
      uri.split("/").last.tr("-", "_")
    end

    def stub_responses(uris)
      uris.each_pair do |uri, attrs|
        if attrs['timeout']
          Net::HTTP.stubs(:get).with(URI(uri)).raises(Timeout::Error)
        else
          Net::HTTP.stubs(:get).with(URI(uri)).returns(attrs['response'])
        end
      end
    end

    def assert_valid_vendors_hash(expected_vendors_hash)
      aws_info = AWSInfo.new

      if expected_vendors_hash.nil?
        refute aws_info.loaded?
      else
        actual = HashExtensions.stringify_keys_in_object(aws_info.to_collector_hash)
        assert_equal expected_vendors_hash["aws"], actual
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
newrelic_rpm-3.18.1.330 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.18.0.329 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.17.2.327 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.17.1.326 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.17.0.325 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.16.3.323 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.16.2.321 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.16.1.320 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.16.0.318 test/new_relic/agent/aws_info_test.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.15.2.317 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.15.1.316 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.15.0.314 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.14.3.313 test/new_relic/agent/aws_info_test.rb
newrelic_rpm-3.14.2.312 test/new_relic/agent/aws_info_test.rb