2021-09-29 13:13:49 -04:00
|
|
|
package tcp
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"fmt"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/hashicorp/boundary/internal/db"
|
|
|
|
|
"github.com/hashicorp/boundary/internal/target"
|
|
|
|
|
"github.com/hashicorp/go-uuid"
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// TestTarget is used to create a Target that can be used by tests in other packages.
|
|
|
|
|
func TestTarget(t *testing.T, conn *db.DB, scopeId, name string, opt ...target.Option) *Target {
|
|
|
|
|
t.Helper()
|
|
|
|
|
opt = append(opt, target.WithName(name))
|
|
|
|
|
opts := target.GetOpts(opt...)
|
|
|
|
|
require := require.New(t)
|
|
|
|
|
rw := db.New(conn)
|
|
|
|
|
tar, err := New(scopeId, opt...)
|
|
|
|
|
require.NoError(err)
|
|
|
|
|
id, err := db.NewPublicId(TargetPrefix)
|
|
|
|
|
require.NoError(err)
|
|
|
|
|
tar.PublicId = id
|
|
|
|
|
err = rw.Create(context.Background(), tar)
|
|
|
|
|
require.NoError(err)
|
|
|
|
|
|
|
|
|
|
if len(opts.WithHostSources) > 0 {
|
|
|
|
|
newHostSets := make([]interface{}, 0, len(opts.WithHostSources))
|
|
|
|
|
for _, s := range opts.WithHostSources {
|
|
|
|
|
hostSet, err := target.NewTargetHostSet(tar.PublicId, s)
|
|
|
|
|
require.NoError(err)
|
|
|
|
|
newHostSets = append(newHostSets, hostSet)
|
|
|
|
|
}
|
|
|
|
|
err := rw.CreateItems(context.Background(), newHostSets)
|
|
|
|
|
require.NoError(err)
|
|
|
|
|
}
|
2021-10-26 09:57:22 -04:00
|
|
|
if len(opts.WithCredentialLibraries) > 0 {
|
|
|
|
|
newCredLibs := make([]interface{}, 0, len(opts.WithCredentialLibraries))
|
|
|
|
|
for _, cl := range opts.WithCredentialLibraries {
|
|
|
|
|
cl.TargetId = tar.PublicId
|
|
|
|
|
newCredLibs = append(newCredLibs, cl)
|
2021-09-29 13:13:49 -04:00
|
|
|
}
|
|
|
|
|
err := rw.CreateItems(context.Background(), newCredLibs)
|
|
|
|
|
require.NoError(err)
|
|
|
|
|
}
|
|
|
|
|
return tar
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testTargetName(t *testing.T, scopeId string) string {
|
|
|
|
|
t.Helper()
|
|
|
|
|
return fmt.Sprintf("%s-%s", scopeId, testId(t))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testId(t *testing.T) string {
|
|
|
|
|
t.Helper()
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
return id
|
|
|
|
|
}
|