github.com/Azure/aad-pod-identity@v1.8.17/pkg/cloudprovider/vmss_test.go (about)

     1  package cloudprovider
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestSetUserIdentitiesVMSS(t *testing.T) {
    11  	testIdentityInfo := &vmssIdentityInfo{
    12  		info: &compute.VirtualMachineScaleSetIdentity{},
    13  	}
    14  
    15  	// adding id1
    16  	update := testIdentityInfo.SetUserIdentities(map[string]bool{"id1": true})
    17  	assert.True(t, update)
    18  	// adding id2
    19  	update = testIdentityInfo.SetUserIdentities(map[string]bool{"id2": true})
    20  	assert.True(t, update)
    21  	// add id3 and delete id1
    22  	update = testIdentityInfo.SetUserIdentities(map[string]bool{"id3": true, "id4": true, "id1": false})
    23  	assert.True(t, update)
    24  }
    25  
    26  func TestRemoveUserIdentityVMSS(t *testing.T) {
    27  	testIdentityInfo := &vmssIdentityInfo{
    28  		info: &compute.VirtualMachineScaleSetIdentity{
    29  			UserAssignedIdentities: map[string]*compute.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue{
    30  				"id1": {},
    31  				"id2": {},
    32  			},
    33  		},
    34  	}
    35  
    36  	// removing id1 (should be case-insensitive)
    37  	removed := testIdentityInfo.RemoveUserIdentity("ID1")
    38  	assert.True(t, removed)
    39  	assert.Len(t, testIdentityInfo.info.UserAssignedIdentities, 1)
    40  
    41  	// removing id2 (should be case-insensitive)
    42  	removed = testIdentityInfo.RemoveUserIdentity("ID2")
    43  	assert.True(t, removed)
    44  	assert.Len(t, testIdentityInfo.info.UserAssignedIdentities, 0)
    45  
    46  	removed = testIdentityInfo.RemoveUserIdentity("ID2")
    47  	assert.False(t, removed)
    48  	assert.Len(t, testIdentityInfo.info.UserAssignedIdentities, 0)
    49  }