79 lines
2.6 KiB
Go
79 lines
2.6 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package tcp_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
talias "github.com/hashicorp/boundary/internal/alias/target"
|
|
"github.com/hashicorp/boundary/internal/db"
|
|
"github.com/hashicorp/boundary/internal/iam"
|
|
"github.com/hashicorp/boundary/internal/kms"
|
|
"github.com/hashicorp/boundary/internal/target"
|
|
"github.com/hashicorp/boundary/internal/target/tcp"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRepository_FetchAliases(t *testing.T) {
|
|
t.Parallel()
|
|
conn, _ := db.TestSetup(t, "postgres")
|
|
rw := db.New(conn)
|
|
wrapper := db.TestWrapper(t)
|
|
testKms := kms.TestKms(t, conn, wrapper)
|
|
iamRepo := iam.TestRepo(t, conn, wrapper)
|
|
_, staticProj := iam.TestScopes(t, iamRepo)
|
|
ctx := context.Background()
|
|
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
|
require.NoError(t, err)
|
|
|
|
t.Run("target-no-aliases", func(t *testing.T) {
|
|
tar := tcp.TestTarget(ctx, t, conn, staticProj.PublicId, "test-target-1")
|
|
tar, err := repo.LookupTarget(context.Background(), tar.GetPublicId())
|
|
require.NoError(t, err)
|
|
|
|
gotAliases := tar.GetAliases()
|
|
assert.Equal(t, len(gotAliases), 0)
|
|
})
|
|
t.Run("target-one-alias", func(t *testing.T) {
|
|
aname := "test-alias"
|
|
tar := tcp.TestTarget(ctx, t, conn, staticProj.PublicId, "test-target-2")
|
|
al := talias.TestAlias(t, rw, aname, talias.WithDestinationId(tar.GetPublicId()))
|
|
|
|
tar, err := repo.LookupTarget(context.Background(), tar.GetPublicId())
|
|
require.NoError(t, err)
|
|
|
|
gotAliases := tar.GetAliases()
|
|
assert.Equal(t, len(gotAliases), 1)
|
|
assert.Equal(t, al.Value, aname)
|
|
})
|
|
t.Run("target-multiple-alias", func(t *testing.T) {
|
|
tar := tcp.TestTarget(ctx, t, conn, staticProj.PublicId, "test-target3")
|
|
aliases := make(map[string]*talias.Alias)
|
|
aname1 := "test.alias.one"
|
|
aname2 := "test.alias.two"
|
|
aname3 := "test.alias.three"
|
|
al := talias.TestAlias(t, rw, aname1, talias.WithDestinationId(tar.GetPublicId()))
|
|
aliases[aname1] = al
|
|
al2 := talias.TestAlias(t, rw, aname2, talias.WithDestinationId(tar.GetPublicId()))
|
|
aliases[aname2] = al2
|
|
al3 := talias.TestAlias(t, rw, aname3, talias.WithDestinationId(tar.GetPublicId()))
|
|
aliases[aname3] = al3
|
|
|
|
tar, err := repo.LookupTarget(context.Background(), tar.GetPublicId())
|
|
require.NoError(t, err)
|
|
|
|
gotAliases := tar.GetAliases()
|
|
assert.Equal(t, len(gotAliases), 3)
|
|
for _, a := range gotAliases {
|
|
v, ok := aliases[a.Value]
|
|
require.Equal(t, ok, true)
|
|
require.Equal(t, a.Value, v.Value)
|
|
require.Equal(t, a.ScopeId, v.ScopeId)
|
|
require.Equal(t, a.Name, v.Name)
|
|
}
|
|
})
|
|
}
|