github.com/cilium/cilium@v1.16.2/pkg/azure/types/types_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package types 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 "github.com/cilium/cilium/pkg/ipam/types" 12 ) 13 14 func TestForeachAddresses(t *testing.T) { 15 m := types.NewInstanceMap() 16 m.Update("i-1", types.InterfaceRevision{ 17 Resource: &AzureInterface{ID: "1", Addresses: []AzureAddress{ 18 {IP: "1.1.1.1"}, 19 {IP: "2.2.2.2"}, 20 }, 21 }}) 22 m.Update("i-2", types.InterfaceRevision{ 23 Resource: &AzureInterface{ID: "1", Addresses: []AzureAddress{ 24 {IP: "3.3.3.3"}, 25 {IP: "4.4.4.4"}, 26 }, 27 }}) 28 29 // Iterate over all instances 30 addresses := 0 31 m.ForeachAddress("", func(instanceID, interfaceID, ip, poolID string, address types.Address) error { 32 addresses++ 33 return nil 34 }) 35 require.Equal(t, 4, addresses) 36 37 // Iterate over "i-1" 38 addresses = 0 39 m.ForeachAddress("i-1", func(instanceID, interfaceID, ip, poolID string, address types.Address) error { 40 addresses++ 41 return nil 42 }) 43 require.Equal(t, 2, addresses) 44 45 // Iterate over all interfaces 46 interfaces := 0 47 m.ForeachInterface("", func(instanceID, interfaceID string, interfaceObj types.InterfaceRevision) error { 48 interfaces++ 49 return nil 50 }) 51 require.Equal(t, 2, interfaces) 52 } 53 54 func TestExtractIDs(t *testing.T) { 55 vmssIntf := AzureInterface{} 56 vmssIntf.SetID("/subscriptions/xxx/resourceGroups/MC_aks-test_aks-test_westeurope/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool1-10706209-vmss/virtualMachines/3/networkInterfaces/aks-nodepool1-10706209-vmss") 57 58 vmIntf := AzureInterface{} 59 vmIntf.SetID("/subscriptions/xxx/resourceGroups/az-test-rg/providers/Microsoft.Network/networkInterfaces/pods-interface") 60 61 require.Equal(t, "MC_aks-test_aks-test_westeurope", vmssIntf.GetResourceGroup()) 62 require.Equal(t, "3", vmssIntf.GetVMID()) 63 require.Equal(t, "aks-nodepool1-10706209-vmss", vmssIntf.GetVMScaleSetName()) 64 require.Equal(t, "az-test-rg", vmIntf.GetResourceGroup()) 65 }