github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/model/bundle_test.go (about)

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