github.com/verrazzano/verrazzano@v1.7.1/tools/oam-converter/pkg/traits/extracttrait_test.go (about) 1 // Copyright (c) 2023, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package traits 5 6 import ( 7 "github.com/stretchr/testify/assert" 8 vzapi "github.com/verrazzano/verrazzano/application-operator/apis/oam/v1alpha1" 9 reader "github.com/verrazzano/verrazzano/tools/oam-converter/pkg/testdata" 10 "github.com/verrazzano/verrazzano/tools/oam-converter/pkg/types" 11 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 12 "testing" 13 ) 14 15 // Test cases for ExtractTrait function 16 func TestExtractTrait(t *testing.T) { 17 18 // Test data: sample appMaps 19 appMaps := []map[string]interface{}{} 20 21 appConf, err := reader.ReadFromYAMLTemplate("testdata/template/app_conf.yaml") 22 if err != nil { 23 return 24 } 25 appMaps = append(appMaps, appConf) 26 27 // Call the function to test 28 result, err := ExtractTrait(appMaps) 29 30 // Assertions 31 assert.NoError(t, err) 32 33 expectedResult := []*types.ConversionComponents{ 34 { 35 AppNamespace: "test-namespace", 36 AppName: "test-appconf", 37 ComponentName: "test-component", 38 IngressTrait: &vzapi.IngressTrait{ 39 TypeMeta: metav1.TypeMeta{ 40 Kind: "IngressTrait", 41 APIVersion: "oam.verrazzano.io/v1alpha1", 42 }, 43 ObjectMeta: metav1.ObjectMeta{ 44 Name: "test-ingress-trait", 45 }, 46 Spec: vzapi.IngressTraitSpec{ 47 Rules: []vzapi.IngressRule{ 48 { 49 Destination: vzapi.IngressDestination{}, 50 Paths: []vzapi.IngressPath{ 51 { 52 Path: "/test-ingress-path", 53 PathType: "Prefix", 54 }, 55 }, 56 }, 57 }, 58 }, 59 }, 60 }, 61 } 62 assert.True(t, assert.Equal(t, expectedResult, result)) 63 }