github.com/Azure/aad-pod-identity@v1.8.17/pkg/crd/crd_test.go (about) 1 package crd 2 3 import ( 4 "testing" 5 6 internalaadpodid "github.com/Azure/aad-pod-identity/pkg/apis/aadpodidentity" 7 aadpodid "github.com/Azure/aad-pod-identity/pkg/apis/aadpodidentity/v1" 8 9 api "k8s.io/api/core/v1" 10 v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 11 ) 12 13 type TestCrdClient struct { 14 *Client 15 assignedIDMap map[string]*aadpodid.AzureAssignedIdentity 16 bindingMap map[string]*aadpodid.AzureIdentityBinding 17 idMap map[string]*aadpodid.AzureIdentity 18 } 19 20 func (c *TestCrdClient) Start(exit <-chan struct{}) { 21 } 22 23 func (c *TestCrdClient) SyncCache(exit <-chan struct{}) { 24 } 25 26 func (c *TestCrdClient) CreateCrdWatchers(eventCh chan internalaadpodid.EventType) error { 27 return nil 28 } 29 30 func (c *TestCrdClient) RemoveAssignedIdentity(assignedIdentity *aadpodid.AzureAssignedIdentity) error { 31 delete(c.assignedIDMap, assignedIdentity.Name) 32 return nil 33 } 34 35 // This function is not used currently 36 // TODO: consider remove 37 func (c *TestCrdClient) CreateAssignedIdentity(assignedIdentity *aadpodid.AzureAssignedIdentity) error { 38 c.assignedIDMap[assignedIdentity.Name] = assignedIdentity 39 return nil 40 } 41 42 func (c *TestCrdClient) CreateBinding(bindingName string, idName string, selector string) { 43 binding := &aadpodid.AzureIdentityBinding{ 44 ObjectMeta: v1.ObjectMeta{ 45 Name: bindingName, 46 }, 47 Spec: aadpodid.AzureIdentityBindingSpec{ 48 AzureIdentity: idName, 49 Selector: selector, 50 }, 51 } 52 c.bindingMap[bindingName] = binding 53 } 54 55 func (c *TestCrdClient) CreateID(idName string, t aadpodid.IdentityType, rID string, cID string, cp *api.SecretReference, tID string, adRID string, adEpt string) { 56 id := &aadpodid.AzureIdentity{ 57 ObjectMeta: v1.ObjectMeta{ 58 Name: idName, 59 }, 60 Spec: aadpodid.AzureIdentitySpec{ 61 Type: t, 62 ResourceID: rID, 63 ClientID: cID, 64 TenantID: tID, 65 ADResourceID: adRID, 66 ADEndpoint: adEpt, 67 }, 68 } 69 c.idMap[idName] = id 70 } 71 72 func (c *TestCrdClient) ListIds() (*[]aadpodid.AzureIdentity, error) { 73 idList := make([]aadpodid.AzureIdentity, 0) 74 for _, v := range c.idMap { 75 idList = append(idList, *v) 76 } 77 return &idList, nil 78 } 79 80 func (c *TestCrdClient) ListBindings() (*[]internalaadpodid.AzureIdentityBinding, error) { 81 bindingList := make([]internalaadpodid.AzureIdentityBinding, 0) 82 for _, v := range c.bindingMap { 83 newBinding := aadpodid.ConvertV1BindingToInternalBinding(*v) 84 bindingList = append(bindingList, newBinding) 85 } 86 return &bindingList, nil 87 } 88 89 func (c *TestCrdClient) ListAssignedIDs() (*[]aadpodid.AzureAssignedIdentity, error) { 90 assignedIDList := make([]aadpodid.AzureAssignedIdentity, 0) 91 for _, v := range c.assignedIDMap { 92 assignedIDList = append(assignedIDList, *v) 93 } 94 return &assignedIDList, nil 95 } 96 97 func TestRemoveFinalizer(t *testing.T) { 98 assignedID := aadpodid.AzureAssignedIdentity{ 99 ObjectMeta: v1.ObjectMeta{ 100 Finalizers: []string{ 101 finalizerName, 102 }, 103 }, 104 } 105 106 removeFinalizer(&assignedID) 107 if len(assignedID.GetFinalizers()) != 0 { 108 t.Fatalf("expected len to be 0, got: %d", len(assignedID.GetFinalizers())) 109 } 110 }