mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-28 09:55:36 +01:00
123 lines
2.7 KiB
Go
123 lines
2.7 KiB
Go
|
package openstack
|
||
|
|
||
|
import (
|
||
|
"reflect"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func Test_buildAuthRequestBody1(t *testing.T) {
|
||
|
type args struct {
|
||
|
sdc *SDConfig
|
||
|
}
|
||
|
tests := []struct {
|
||
|
name string
|
||
|
args args
|
||
|
want []byte
|
||
|
wantErr bool
|
||
|
}{
|
||
|
{
|
||
|
name: "empty config",
|
||
|
args: args{
|
||
|
sdc: &SDConfig{},
|
||
|
},
|
||
|
wantErr: true,
|
||
|
},
|
||
|
{
|
||
|
name: "username password auth with domain",
|
||
|
args: args{
|
||
|
sdc: &SDConfig{
|
||
|
Username: "some-user",
|
||
|
Password: "some-password",
|
||
|
DomainName: "some-domain",
|
||
|
},
|
||
|
},
|
||
|
want: []byte(`{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"some-user","password":"some-password","domain":{"name":"some-domain"}}}},"scope":{"domain":{"name":"some-domain"}}}}`),
|
||
|
},
|
||
|
{
|
||
|
name: "application credentials auth",
|
||
|
args: args{
|
||
|
sdc: &SDConfig{
|
||
|
ApplicationCredentialID: "some-id",
|
||
|
ApplicationCredentialSecret: "some-secret",
|
||
|
},
|
||
|
},
|
||
|
want: []byte(`{"auth":{"identity":{"methods":["application_credential"],"application_credential":{"id":"some-id","secret":"some-secret"}}}}`),
|
||
|
},
|
||
|
}
|
||
|
for _, tt := range tests {
|
||
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
got, err := buildAuthRequestBody(tt.args.sdc)
|
||
|
if (err != nil) != tt.wantErr {
|
||
|
t.Errorf("buildAuthRequestBody() error = %v, wantErr %v", err, tt.wantErr)
|
||
|
return
|
||
|
}
|
||
|
if !reflect.DeepEqual(got, tt.want) {
|
||
|
t.Errorf("buildAuthRequestBody() got = %v, want %v", got, tt.want)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func Test_getComputeEndpointURL1(t *testing.T) {
|
||
|
type args struct {
|
||
|
catalog []catalogItem
|
||
|
availability string
|
||
|
region string
|
||
|
}
|
||
|
tests := []struct {
|
||
|
name string
|
||
|
args args
|
||
|
want string
|
||
|
wantErr bool
|
||
|
}{
|
||
|
{
|
||
|
name: "bad catalog data",
|
||
|
args: args{
|
||
|
catalog: []catalogItem{
|
||
|
{
|
||
|
Type: "keystone",
|
||
|
Endpoints: []endpoint{},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
wantErr: true,
|
||
|
},
|
||
|
{
|
||
|
name: "good private url",
|
||
|
args: args{
|
||
|
availability: "private",
|
||
|
catalog: []catalogItem{
|
||
|
{
|
||
|
Type: "compute",
|
||
|
Endpoints: []endpoint{
|
||
|
{
|
||
|
Interface: "private",
|
||
|
Type: "compute",
|
||
|
URL: "https://compute.test.local:8083/v2.1",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
Type: "keystone",
|
||
|
Endpoints: []endpoint{},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
want: "https://compute.test.local:8083/v2.1",
|
||
|
},
|
||
|
}
|
||
|
for _, tt := range tests {
|
||
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
got, err := getComputeEndpointURL(tt.args.catalog, tt.args.availability, tt.args.region)
|
||
|
if (err != nil) != tt.wantErr {
|
||
|
t.Errorf("getComputeEndpointURL() error = %v, wantErr %v", err, tt.wantErr)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if !tt.wantErr && !reflect.DeepEqual(got.String(), tt.want) {
|
||
|
t.Errorf("getComputeEndpointURL() got = %v, want %v", got.String(), tt.want)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|