2023-03-15 16:00:52 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
|
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
2021-06-22 19:50:46 +00:00
|
|
|
package rabbitmq
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"reflect"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/hashicorp/vault/sdk/logical"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestBackend_ConfigConnection_DefaultUsernameTemplate(t *testing.T) {
|
|
|
|
var resp *logical.Response
|
|
|
|
var err error
|
|
|
|
config := logical.TestBackendConfig()
|
|
|
|
config.StorageView = &logical.InmemStorage{}
|
|
|
|
b := Backend()
|
|
|
|
if err = b.Setup(context.Background(), config); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
configData := map[string]interface{}{
|
|
|
|
"connection_uri": "uri",
|
|
|
|
"username": "username",
|
|
|
|
"password": "password",
|
|
|
|
"verify_connection": "false",
|
|
|
|
}
|
|
|
|
configReq := &logical.Request{
|
|
|
|
Operation: logical.UpdateOperation,
|
|
|
|
Path: "config/connection",
|
|
|
|
Storage: config.StorageView,
|
|
|
|
Data: configData,
|
|
|
|
}
|
|
|
|
resp, err = b.HandleRequest(context.Background(), configReq)
|
|
|
|
if err != nil || (resp != nil && resp.IsError()) {
|
|
|
|
t.Fatalf("bad: resp: %#v\nerr:%s", resp, err)
|
|
|
|
}
|
|
|
|
if resp != nil {
|
|
|
|
t.Fatal("expected a nil response")
|
|
|
|
}
|
|
|
|
|
|
|
|
actualConfig, err := readConfig(context.Background(), config.StorageView)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("unable to read configuration: %v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
expectedConfig := connectionConfig{
|
|
|
|
URI: "uri",
|
|
|
|
Username: "username",
|
|
|
|
Password: "password",
|
|
|
|
UsernameTemplate: "",
|
|
|
|
}
|
|
|
|
|
|
|
|
if !reflect.DeepEqual(actualConfig, expectedConfig) {
|
|
|
|
t.Fatalf("Expected: %#v\nActual: %#v", expectedConfig, actualConfig)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestBackend_ConfigConnection_CustomUsernameTemplate(t *testing.T) {
|
|
|
|
var resp *logical.Response
|
|
|
|
var err error
|
|
|
|
config := logical.TestBackendConfig()
|
|
|
|
config.StorageView = &logical.InmemStorage{}
|
|
|
|
b := Backend()
|
|
|
|
if err = b.Setup(context.Background(), config); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
configData := map[string]interface{}{
|
|
|
|
"connection_uri": "uri",
|
|
|
|
"username": "username",
|
|
|
|
"password": "password",
|
|
|
|
"verify_connection": "false",
|
|
|
|
"username_template": "{{ .DisplayName }}",
|
|
|
|
}
|
|
|
|
configReq := &logical.Request{
|
|
|
|
Operation: logical.UpdateOperation,
|
|
|
|
Path: "config/connection",
|
|
|
|
Storage: config.StorageView,
|
|
|
|
Data: configData,
|
|
|
|
}
|
|
|
|
resp, err = b.HandleRequest(context.Background(), configReq)
|
|
|
|
if err != nil || (resp != nil && resp.IsError()) {
|
|
|
|
t.Fatalf("bad: resp: %#v\nerr:%s", resp, err)
|
|
|
|
}
|
|
|
|
if resp != nil {
|
|
|
|
t.Fatal("expected a nil response")
|
|
|
|
}
|
|
|
|
|
|
|
|
actualConfig, err := readConfig(context.Background(), config.StorageView)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("unable to read configuration: %v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
expectedConfig := connectionConfig{
|
|
|
|
URI: "uri",
|
|
|
|
Username: "username",
|
|
|
|
Password: "password",
|
|
|
|
UsernameTemplate: "{{ .DisplayName }}",
|
|
|
|
}
|
|
|
|
|
|
|
|
if !reflect.DeepEqual(actualConfig, expectedConfig) {
|
|
|
|
t.Fatalf("Expected: %#v\nActual: %#v", expectedConfig, actualConfig)
|
|
|
|
}
|
|
|
|
}
|