github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/model/package_test.go (about) 1 package model_test 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/kyma-incubator/compass/components/director/pkg/resource" 8 9 "github.com/kyma-incubator/compass/components/director/internal/model" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestPackageInput_ToPackage(t *testing.T) { 14 // GIVEN 15 id := "foo" 16 appID := "bar" 17 appTemplateVersionID := "naz" 18 vendor := "Sample" 19 name := "sample" 20 labels := json.RawMessage("{}") 21 22 testCases := []struct { 23 Name string 24 Input *model.PackageInput 25 ResourceType resource.Type 26 ResourceID string 27 Expected *model.Package 28 }{ 29 { 30 Name: "All properties given for App", 31 Input: &model.PackageInput{ 32 Title: name, 33 Vendor: &vendor, 34 Labels: labels, 35 }, 36 Expected: &model.Package{ 37 ID: id, 38 ApplicationID: &appID, 39 Title: name, 40 Vendor: &vendor, 41 Labels: labels, 42 }, 43 ResourceType: resource.Application, 44 ResourceID: appID, 45 }, 46 { 47 Name: "All properties given for App Template Version", 48 Input: &model.PackageInput{ 49 Title: name, 50 Vendor: &vendor, 51 Labels: labels, 52 }, 53 Expected: &model.Package{ 54 ID: id, 55 ApplicationTemplateVersionID: &appTemplateVersionID, 56 Title: name, 57 Vendor: &vendor, 58 Labels: labels, 59 }, 60 ResourceType: resource.ApplicationTemplateVersion, 61 ResourceID: appTemplateVersionID, 62 }, 63 { 64 Name: "Nil", 65 Input: nil, 66 Expected: nil, 67 }, 68 } 69 70 for _, testCase := range testCases { 71 t.Run(testCase.Name, func(t *testing.T) { 72 // WHEN 73 result := testCase.Input.ToPackage(id, testCase.ResourceType, testCase.ResourceID, 0) 74 75 // THEN 76 assert.Equal(t, testCase.Expected, result) 77 }) 78 } 79 }