Co-authored-by: Damian Debkowski <damian.debkowski@hashicorp.com>
138 lines
3.6 KiB
Go
138 lines
3.6 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package static
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/boundary/internal/db"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
// TestCatalogs creates count number of static host catalogs to the provided DB
|
|
// with the provided project id. If any errors are encountered during the creation of
|
|
// the host catalog, the test will fail.
|
|
func TestCatalogs(t testing.TB, conn *db.DB, projectId string, count int) []*HostCatalog {
|
|
t.Helper()
|
|
ctx := context.Background()
|
|
assert := assert.New(t)
|
|
var cats []*HostCatalog
|
|
for i := 0; i < count; i++ {
|
|
cat, err := NewHostCatalog(ctx, projectId)
|
|
assert.NoError(err)
|
|
assert.NotNil(cat)
|
|
id, err := newHostCatalogId(ctx)
|
|
assert.NoError(err)
|
|
assert.NotEmpty(id)
|
|
cat.PublicId = id
|
|
|
|
w := db.New(conn)
|
|
err2 := w.Create(ctx, cat)
|
|
assert.NoError(err2)
|
|
cats = append(cats, cat)
|
|
}
|
|
return cats
|
|
}
|
|
|
|
// TestHost creates a static host to the provided DB with the provided catalog id.
|
|
// The catalog must have been created previously. If any errors are encountered
|
|
// during the creation of the host, the test will fail.
|
|
func TestHost(t testing.TB, conn *db.DB, catalogId string, opt ...Option) *Host {
|
|
t.Helper()
|
|
ctx := context.Background()
|
|
assert := assert.New(t)
|
|
|
|
host, err := NewHost(ctx, catalogId, opt...)
|
|
assert.NoError(err)
|
|
assert.NotNil(host)
|
|
|
|
id, err := newHostId(ctx)
|
|
assert.NoError(err)
|
|
assert.NotEmpty(id)
|
|
host.PublicId = id
|
|
|
|
w := db.New(conn)
|
|
err2 := w.Create(ctx, host)
|
|
assert.NoError(err2)
|
|
|
|
return host
|
|
}
|
|
|
|
// TestHosts creates count number of static hosts to the provided DB
|
|
// with the provided catalog id. The catalog must have been created previously.
|
|
// If any errors are encountered during the creation of the host, the test will fail.
|
|
func TestHosts(t testing.TB, conn *db.DB, catalogId string, count int) []*Host {
|
|
t.Helper()
|
|
ctx := context.Background()
|
|
assert := assert.New(t)
|
|
var hosts []*Host
|
|
|
|
for i := 0; i < count; i++ {
|
|
host, err := NewHost(ctx, catalogId, WithAddress(fmt.Sprintf("%s-%d", catalogId, i)))
|
|
assert.NoError(err)
|
|
assert.NotNil(host)
|
|
|
|
id, err := newHostId(ctx)
|
|
assert.NoError(err)
|
|
assert.NotEmpty(id)
|
|
host.PublicId = id
|
|
|
|
w := db.New(conn)
|
|
err2 := w.Create(ctx, host)
|
|
assert.NoError(err2)
|
|
hosts = append(hosts, host)
|
|
}
|
|
return hosts
|
|
}
|
|
|
|
// TestSets creates count number of static host sets in the provided DB
|
|
// with the provided catalog id. The catalog must have been created
|
|
// previously. The test will fail if any errors are encountered.
|
|
func TestSets(t testing.TB, conn *db.DB, catalogId string, count int) []*HostSet {
|
|
t.Helper()
|
|
ctx := context.Background()
|
|
assert := assert.New(t)
|
|
var sets []*HostSet
|
|
|
|
for i := 0; i < count; i++ {
|
|
set, err := NewHostSet(ctx, catalogId)
|
|
assert.NoError(err)
|
|
assert.NotNil(set)
|
|
id, err := newHostSetId(ctx)
|
|
assert.NoError(err)
|
|
assert.NotEmpty(id)
|
|
set.PublicId = id
|
|
|
|
w := db.New(conn)
|
|
err2 := w.Create(ctx, set)
|
|
assert.NoError(err2)
|
|
sets = append(sets, set)
|
|
}
|
|
return sets
|
|
}
|
|
|
|
// TestSetMembers adds hosts to the specified setId in the provided DB.
|
|
// The set and hosts must have been created previously and belong to the
|
|
// same catalog. The test will fail if any errors are encountered.
|
|
func TestSetMembers(t testing.TB, conn *db.DB, setId string, hosts []*Host) []*HostSetMember {
|
|
t.Helper()
|
|
assert := assert.New(t)
|
|
ctx := context.Background()
|
|
|
|
var members []*HostSetMember
|
|
for _, host := range hosts {
|
|
member, err := NewHostSetMember(ctx, setId, host.PublicId)
|
|
assert.NoError(err)
|
|
assert.NotNil(member)
|
|
|
|
w := db.New(conn)
|
|
err2 := w.Create(ctx, member)
|
|
assert.NoError(err2)
|
|
members = append(members, member)
|
|
}
|
|
return members
|
|
}
|