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  }