github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/model/fetchrequest_test.go (about) 1 package model_test 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/kyma-incubator/compass/components/director/internal/model" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestFetchRequestInput_ToFetchRequest(t *testing.T) { 13 // GIVEN 14 mode := model.FetchModeSingle 15 filter := "foofilter" 16 timestamp := time.Now() 17 testCases := []struct { 18 Name string 19 InputID string 20 InputReferenceObjectType model.FetchRequestReferenceObjectType 21 InputReferenceObjectID string 22 InputFRInput *model.FetchRequestInput 23 Expected *model.FetchRequest 24 }{ 25 { 26 Name: "All properties given", 27 InputID: "input-id", 28 InputReferenceObjectID: "ref-id", 29 InputReferenceObjectType: model.APISpecFetchRequestReference, 30 InputFRInput: &model.FetchRequestInput{ 31 URL: "foourl", 32 Auth: &model.AuthInput{ 33 AdditionalHeaders: map[string][]string{ 34 "foo": {"foo", "bar"}, 35 "bar": {"bar", "foo"}, 36 }, 37 }, 38 Mode: &mode, 39 Filter: &filter, 40 }, 41 Expected: &model.FetchRequest{ 42 ID: "input-id", 43 ObjectID: "ref-id", 44 ObjectType: model.APISpecFetchRequestReference, 45 URL: "foourl", 46 Auth: &model.Auth{ 47 AdditionalHeaders: map[string][]string{ 48 "foo": {"foo", "bar"}, 49 "bar": {"bar", "foo"}, 50 }, 51 }, 52 Mode: mode, 53 Filter: &filter, 54 Status: &model.FetchRequestStatus{ 55 Condition: model.FetchRequestStatusConditionInitial, 56 Timestamp: timestamp, 57 }, 58 }, 59 }, 60 { 61 Name: "Empty", 62 InputID: "input-id", 63 InputReferenceObjectType: model.APISpecFetchRequestReference, 64 InputReferenceObjectID: "ref-id-2", 65 InputFRInput: &model.FetchRequestInput{}, 66 Expected: &model.FetchRequest{ 67 ID: "input-id", 68 ObjectID: "ref-id-2", 69 ObjectType: model.APISpecFetchRequestReference, 70 Mode: model.FetchModeSingle, 71 Status: &model.FetchRequestStatus{ 72 Condition: model.FetchRequestStatusConditionInitial, 73 Timestamp: timestamp, 74 }, 75 }, 76 }, 77 { 78 Name: "Nil", 79 InputFRInput: nil, 80 Expected: nil, 81 }, 82 } 83 84 for i, testCase := range testCases { 85 t.Run(fmt.Sprintf("%d: %s", i, testCase.Name), func(t *testing.T) { 86 // WHEN 87 result := testCase.InputFRInput.ToFetchRequest(timestamp, testCase.InputID, testCase.InputReferenceObjectType, testCase.InputReferenceObjectID) 88 89 // THEN 90 assert.Equal(t, testCase.Expected, result) 91 }) 92 } 93 }