github.com/newrelic/go-agent@v3.26.0+incompatible/internal/utilization/pcf_test.go (about)

     1  // Copyright 2020 New Relic Corporation. All rights reserved.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package utilization
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/newrelic/go-agent/internal/crossagent"
    10  )
    11  
    12  func TestCrossAgentPCF(t *testing.T) {
    13  	var testCases []testCase
    14  
    15  	err := crossagent.ReadJSON("utilization_vendor_specific/pcf.json", &testCases)
    16  	if err != nil {
    17  		t.Fatalf("reading pcf.json failed: %v", err)
    18  	}
    19  
    20  	for _, testCase := range testCases {
    21  		pcf, err := getPCF(func(key string) string {
    22  			resp := testCase.EnvVars[key]
    23  			if resp.Timeout {
    24  				return ""
    25  			}
    26  			return resp.Response
    27  		})
    28  
    29  		if testCase.ExpectedVendorsHash.PCF == nil {
    30  			if err == nil {
    31  				t.Fatalf("%s: expected error; got nil", testCase.TestName)
    32  			}
    33  		} else {
    34  			if err != nil {
    35  				t.Fatalf("%s: expected no error; got %v", testCase.TestName, err)
    36  			}
    37  
    38  			if pcf.InstanceGUID != testCase.ExpectedVendorsHash.PCF.InstanceGUID {
    39  				t.Fatalf("%s: InstanceGUID incorrect; expected: %s; got: %s", testCase.TestName, testCase.ExpectedVendorsHash.PCF.InstanceGUID, pcf.InstanceGUID)
    40  			}
    41  
    42  			if pcf.InstanceIP != testCase.ExpectedVendorsHash.PCF.InstanceIP {
    43  				t.Fatalf("%s: InstanceIP incorrect; expected: %s; got: %s", testCase.TestName, testCase.ExpectedVendorsHash.PCF.InstanceIP, pcf.InstanceIP)
    44  			}
    45  
    46  			if pcf.MemoryLimit != testCase.ExpectedVendorsHash.PCF.MemoryLimit {
    47  				t.Fatalf("%s: MemoryLimit incorrect; expected: %s; got: %s", testCase.TestName, testCase.ExpectedVendorsHash.PCF.MemoryLimit, pcf.MemoryLimit)
    48  			}
    49  		}
    50  	}
    51  }