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  }