1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
// Copyright 2020 New Relic Corporation. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
package utilization
import (
"net/http"
"testing"
"github.com/newrelic/go-agent/internal/crossagent"
)
func TestCrossAgentAWS(t *testing.T) {
var testCases []testCase
err := crossagent.ReadJSON("utilization_vendor_specific/aws.json", &testCases)
if err != nil {
t.Fatalf("reading aws.json failed: %v", err)
}
for _, testCase := range testCases {
client := &http.Client{
Transport: &mockTransport{
t: t,
responses: testCase.URIs,
},
}
aws, err := getAWS(client)
if testCase.ExpectedVendorsHash.AWS == nil {
if err == nil {
t.Fatalf("%s: expected error; got nil", testCase.TestName)
}
} else {
if err != nil {
t.Fatalf("%s: expected no error; got %v", testCase.TestName, err)
}
if aws.InstanceID != testCase.ExpectedVendorsHash.AWS.InstanceID {
t.Fatalf("%s: instanceId incorrect; expected: %s; got: %s", testCase.TestName, testCase.ExpectedVendorsHash.AWS.InstanceID, aws.InstanceID)
}
if aws.InstanceType != testCase.ExpectedVendorsHash.AWS.InstanceType {
t.Fatalf("%s: instanceType incorrect; expected: %s; got: %s", testCase.TestName, testCase.ExpectedVendorsHash.AWS.InstanceType, aws.InstanceType)
}
if aws.AvailabilityZone != testCase.ExpectedVendorsHash.AWS.AvailabilityZone {
t.Fatalf("%s: availabilityZone incorrect; expected: %s; got: %s", testCase.TestName, testCase.ExpectedVendorsHash.AWS.AvailabilityZone, aws.AvailabilityZone)
}
}
}
}
|