github.com/kyma-project/kyma-environment-broker@v0.0.1/common/hyperscaler/azure/env_test.go (about) 1 package azure 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/kyma-project/kyma-environment-broker/common/hyperscaler" 9 "github.com/kyma-project/kyma-environment-broker/internal" 10 "github.com/kyma-project/kyma-environment-broker/internal/broker" 11 "github.com/kyma-project/kyma-environment-broker/internal/provider" 12 ) 13 14 func Test_mapRegion(t *testing.T) { 15 type args struct { 16 hyperscalerType hyperscaler.Type 17 planID string 18 region string 19 } 20 tests := []struct { 21 name string 22 args args 23 wantRegion string 24 wantErr bool 25 }{ 26 { 27 name: "invalid gcp mapping", 28 args: args{ 29 hyperscalerType: hyperscaler.Azure, 30 planID: broker.GCPPlanID, 31 region: "munich", 32 }, 33 wantRegion: "", 34 wantErr: true, 35 }, 36 { 37 name: "valid gcp mapping", 38 args: args{ 39 hyperscalerType: hyperscaler.Azure, 40 planID: broker.GCPPlanID, 41 region: "europe-west1", 42 }, 43 wantRegion: "westeurope", 44 wantErr: false, 45 }, 46 { 47 name: "unknown planid", 48 args: args{ 49 hyperscalerType: hyperscaler.Azure, 50 planID: "microsoftcloud", 51 region: "", 52 }, 53 wantRegion: provider.DefaultAzureRegion, 54 wantErr: false, 55 }, 56 { 57 name: "unknown hyperscaler", 58 args: args{ 59 hyperscalerType: "microsoftcloud", 60 planID: broker.AzurePlanID, 61 region: "", 62 }, 63 wantRegion: "", 64 wantErr: true, 65 }, 66 { 67 name: "empty azure region", 68 args: args{ 69 hyperscalerType: hyperscaler.Azure, 70 planID: broker.AzurePlanID, 71 region: "", 72 }, 73 wantRegion: provider.DefaultAzureRegion, 74 wantErr: false, 75 }, 76 { 77 name: "valid azure region", 78 args: args{ 79 hyperscalerType: hyperscaler.Azure, 80 planID: broker.AzurePlanID, 81 region: "westeurope", 82 }, 83 wantRegion: "westeurope", 84 wantErr: false, 85 }, 86 { 87 name: "valid azure lite region", 88 args: args{ 89 hyperscalerType: hyperscaler.Azure, 90 planID: broker.AzureLitePlanID, 91 region: "japaneast", 92 }, 93 wantRegion: "japaneast", 94 wantErr: false, 95 }, 96 } 97 for _, tt := range tests { 98 t.Run(tt.name, func(t *testing.T) { 99 credentials := hyperscaler.Credentials{ 100 HyperscalerType: tt.args.hyperscalerType, 101 } 102 parameters := internal.ProvisioningParameters{ 103 PlanID: tt.args.planID, 104 Parameters: internal.ProvisioningParametersDTO{ 105 Region: &tt.args.region, 106 }, 107 } 108 109 got, err := mapRegion(credentials, parameters) 110 if tt.wantErr { 111 require.NotNil(t, err, "mapRegion() error = %v, wantErr %v", err, tt.wantErr) 112 } else { 113 require.Nil(t, err, "mapRegion() error = %v, wantErr %v", err, tt.wantErr) 114 } 115 require.Equal(t, got, tt.wantRegion, "mapRegion() got = %v, wantRegion %v", got, tt.wantRegion) 116 }) 117 } 118 }