github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/pkg/model/system_auth_test.go (about) 1 package model 2 3 import ( 4 "testing" 5 6 "github.com/kyma-incubator/compass/components/director/pkg/apperrors" 7 8 "github.com/google/uuid" 9 "github.com/kyma-incubator/compass/components/director/pkg/str" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestSystemAuthGetReferenceObjectType(t *testing.T) { 14 t.Run("GetReferenceObjectType returns ApplicationReference for SystemAuth referenced by the Application", func(t *testing.T) { 15 appID := uuid.New() 16 sysAuth := SystemAuth{ 17 AppID: str.Ptr(appID.String()), 18 } 19 20 refObjType, err := sysAuth.GetReferenceObjectType() 21 22 require.NoError(t, err) 23 require.Equal(t, ApplicationReference, refObjType) 24 }) 25 26 t.Run("GetReferenceObjectType returns RuntimeReference for SystemAuth referenced by the Runtime", func(t *testing.T) { 27 runtimeID := uuid.New() 28 sysAuth := SystemAuth{ 29 RuntimeID: str.Ptr(runtimeID.String()), 30 } 31 32 refObjType, err := sysAuth.GetReferenceObjectType() 33 34 require.NoError(t, err) 35 require.Equal(t, RuntimeReference, refObjType) 36 }) 37 38 t.Run("GetReferenceObjectType returns IntegrationSystemReference for SystemAuth referenced by the Integration System", func(t *testing.T) { 39 intSysID := uuid.New() 40 sysAuth := SystemAuth{ 41 IntegrationSystemID: str.Ptr(intSysID.String()), 42 } 43 44 refObjType, err := sysAuth.GetReferenceObjectType() 45 46 require.NoError(t, err) 47 require.Equal(t, IntegrationSystemReference, refObjType) 48 }) 49 50 t.Run("GetReferenceObjectType returns error when called on SystemAuth with all reference properties set to nil", func(t *testing.T) { 51 sysAuth := SystemAuth{} 52 53 _, err := sysAuth.GetReferenceObjectType() 54 55 require.EqualError(t, err, apperrors.NewInternalError("unknown reference object type").Error()) 56 }) 57 } 58 59 func TestSystemAuthGetReferenceObjectID(t *testing.T) { 60 t.Run("GetReferenceObjectID returns AppID for SystemAuth referenced by the Application", func(t *testing.T) { 61 appID := uuid.New() 62 sysAuth := SystemAuth{ 63 AppID: str.Ptr(appID.String()), 64 } 65 66 refObjID, err := sysAuth.GetReferenceObjectID() 67 68 require.NoError(t, err) 69 require.Equal(t, appID.String(), refObjID) 70 }) 71 72 t.Run("GetReferenceObjectID returns RuntimeID for SystemAuth referenced by the Runtime", func(t *testing.T) { 73 runtimeID := uuid.New() 74 sysAuth := SystemAuth{ 75 RuntimeID: str.Ptr(runtimeID.String()), 76 } 77 78 refObjID, err := sysAuth.GetReferenceObjectID() 79 80 require.NoError(t, err) 81 require.Equal(t, runtimeID.String(), refObjID) 82 }) 83 84 t.Run("GetReferenceObjectID returns IntegrationSystemID and IntegrationSystemReference for SystemAuth referenced by the Integration System", func(t *testing.T) { 85 intSysID := uuid.New() 86 sysAuth := SystemAuth{ 87 IntegrationSystemID: str.Ptr(intSysID.String()), 88 } 89 90 refObjID, err := sysAuth.GetReferenceObjectID() 91 92 require.NoError(t, err) 93 require.Equal(t, intSysID.String(), refObjID) 94 }) 95 96 t.Run("GetReferenceObjectID returns error when called on SystemAuth with all reference properties set to nil", func(t *testing.T) { 97 sysAuth := SystemAuth{} 98 99 _, err := sysAuth.GetReferenceObjectID() 100 101 require.EqualError(t, err, apperrors.NewInternalError("unknown reference object ID").Error()) 102 }) 103 }