// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT package util import ( "testing" "github.com/stretchr/testify/assert" ) const ( dummyInstanceId = "some_instance_id" dummyHostName = "some_hostname" dummyPrivateIp = "some_private_ip" dummyAccountId = "some_account_id" ) func TestHostName(t *testing.T) { assert.True(t, getHostName() != unknownHostname) } func TestIpAddress(t *testing.T) { assert.True(t, getIpAddress() != unknownIpAddress) } func TestGetMetadataInfo(t *testing.T) { m := GetMetadataInfo(mockMetadataProvider(dummyInstanceId, dummyHostName, dummyPrivateIp, dummyAccountId)) assert.Equal(t, dummyInstanceId, m[instanceIdPlaceholder]) assert.Equal(t, dummyHostName, m[hostnamePlaceholder]) assert.Equal(t, dummyPrivateIp, m[ipAddressPlaceholder]) assert.Equal(t, dummyAccountId, m[accountIdPlaceholder]) } func TestGetMetadataInfoEmptyInstanceId(t *testing.T) { m := GetMetadataInfo(mockMetadataProvider("", dummyHostName, dummyPrivateIp, dummyAccountId)) assert.Equal(t, unknownInstanceId, m[instanceIdPlaceholder]) } func TestGetMetadataInfoUsesLocalHostname(t *testing.T) { m := GetMetadataInfo(mockMetadataProvider(dummyInstanceId, "", dummyPrivateIp, dummyAccountId)) assert.Equal(t, getHostName(), m[hostnamePlaceholder]) } func TestGetMetadataInfoDerivesIpAddress(t *testing.T) { m := GetMetadataInfo(mockMetadataProvider(dummyInstanceId, dummyHostName, "", dummyAccountId)) assert.Equal(t, getIpAddress(), m[ipAddressPlaceholder]) } func TestGetMetadataInfoEmptyAccountId(t *testing.T) { m := GetMetadataInfo(mockMetadataProvider(dummyInstanceId, dummyHostName, dummyPrivateIp, "")) assert.Equal(t, unknownAccountId, m[accountIdPlaceholder]) } func mockMetadataProvider(instanceId, hostname, privateIp, accountId string) func() *Metadata { return func() *Metadata { return &Metadata{ InstanceID: instanceId, Hostname: hostname, PrivateIP: privateIp, AccountID: accountId, } } }