github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/metadata_openapi_unit_test.go (about) 1 //go:build unit || ALL 2 3 /* 4 * Copyright 2023 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. 5 */ 6 7 package govcd 8 9 import ( 10 "github.com/vmware/go-vcloud-director/v2/types/v56" 11 "reflect" 12 "testing" 13 ) 14 15 func Test_normaliseOpenApiMetadata(t *testing.T) { 16 type args struct { 17 objectType string 18 name string 19 metadataEntry *types.OpenApiMetadataEntry 20 } 21 tests := []struct { 22 name string 23 args args 24 want *normalisedMetadata 25 wantErr bool 26 }{ 27 { 28 name: "number normalised", 29 args: args{ 30 objectType: "entity", 31 name: "foo", 32 metadataEntry: &types.OpenApiMetadataEntry{ 33 KeyValue: types.OpenApiMetadataKeyValue{ 34 Domain: "TENANT", 35 Key: "key", 36 Value: types.OpenApiMetadataTypedValue{ 37 Value: 314159, 38 Type: types.OpenApiMetadataNumberEntry, 39 }, 40 }, 41 }, 42 }, 43 want: &normalisedMetadata{ 44 ObjectType: "entity", 45 ObjectName: "foo", 46 Key: "key", 47 Value: "314159", 48 }, 49 }, 50 { 51 name: "string normalised", 52 args: args{ 53 objectType: "entity", 54 name: "foo", 55 metadataEntry: &types.OpenApiMetadataEntry{ 56 KeyValue: types.OpenApiMetadataKeyValue{ 57 Domain: "TENANT", 58 Key: "key", 59 Value: types.OpenApiMetadataTypedValue{ 60 Value: "value", 61 Type: types.OpenApiMetadataStringEntry, 62 }, 63 }, 64 }, 65 }, 66 want: &normalisedMetadata{ 67 ObjectType: "entity", 68 ObjectName: "foo", 69 Key: "key", 70 Value: "value", 71 }, 72 }, 73 { 74 name: "bool normalised", 75 args: args{ 76 objectType: "entity", 77 name: "foo", 78 metadataEntry: &types.OpenApiMetadataEntry{ 79 KeyValue: types.OpenApiMetadataKeyValue{ 80 Domain: "TENANT", 81 Key: "key", 82 Value: types.OpenApiMetadataTypedValue{ 83 Value: true, 84 Type: types.OpenApiMetadataBooleanEntry, 85 }, 86 }, 87 }, 88 }, 89 want: &normalisedMetadata{ 90 ObjectType: "entity", 91 ObjectName: "foo", 92 Key: "key", 93 Value: "true", 94 }, 95 }, 96 } 97 for _, tt := range tests { 98 t.Run(tt.name, func(t *testing.T) { 99 got, err := normaliseOpenApiMetadata(tt.args.objectType, tt.args.name, tt.args.metadataEntry) 100 if (err != nil) != tt.wantErr { 101 t.Errorf("normaliseOpenApiMetadata() error = %v, wantErr %v", err, tt.wantErr) 102 return 103 } 104 if !reflect.DeepEqual(got, tt.want) { 105 t.Errorf("normaliseOpenApiMetadata() got = %v, want %v", got, tt.want) 106 } 107 }) 108 } 109 }