Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

187 lines
5.0 KiB
Go
Raw Permalink Normal View History

// Copyright IBM Corp. 2020, 2026
2020-08-26 12:31:18 -04:00
// SPDX-License-Identifier: BUSL-1.1
2023-02-02 17:15:17 -08:00
package static
import (
"context"
2020-08-20 08:20:26 -07:00
"fmt"
"testing"
"repo.anhonesthost.net/CyberCoveLLC/threshold/internal/db"
"github.com/stretchr/testify/assert"
)
// TestCatalog creates a static host catalog 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.
// Name and description are the only valid options. All other options are
// ignored.
func TestCatalog(t testing.TB, conn *db.DB, projectId string, opt ...Option) *HostCatalog {
t.Helper()
ctx := context.Background()
assert := assert.New(t)
cat, err := NewHostCatalog(ctx, projectId, opt...)
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)
return cat
}
// TestCatalogs creates count number of static host catalogs to the provided DB
2022-07-20 16:24:46 -07:00
// with the provided project id. If any errors are encountered during the creation of
// the host catalog, the test will fail.
2022-07-20 16:24:46 -07:00
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
}
2020-08-20 08:20:26 -07:00
// 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
}
2020-08-20 08:20:26 -07:00
// 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 {
2020-08-20 08:20:26 -07:00
t.Helper()
ctx := context.Background()
2020-08-20 08:20:26 -07:00
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)))
2020-08-20 08:20:26 -07:00
assert.NoError(err)
assert.NotNil(host)
id, err := newHostId(ctx)
2020-08-20 08:20:26 -07:00
assert.NoError(err)
assert.NotEmpty(id)
host.PublicId = id
w := db.New(conn)
err2 := w.Create(ctx, host)
2020-08-20 08:20:26 -07:00
assert.NoError(err2)
hosts = append(hosts, host)
}
return hosts
}
2020-08-20 15:13:12 -04:00
// TestSet creates a static host set in the provided DB
// with the provided catalog id. The catalog must have been created
// previously. Name and description are the only valid options. All other options are
// ignored. The test will fail if any errors are encountered.
func TestSet(t testing.TB, conn *db.DB, catalogId string, opt ...Option) *HostSet {
t.Helper()
ctx := context.Background()
assert := assert.New(t)
set, err := NewHostSet(ctx, catalogId, opt...)
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)
return set
}
2020-08-20 15:13:12 -04:00
// 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 {
2020-08-20 15:13:12 -04:00
t.Helper()
ctx := context.Background()
2020-08-20 15:13:12 -04:00
assert := assert.New(t)
var sets []*HostSet
for i := 0; i < count; i++ {
set, err := NewHostSet(ctx, catalogId)
2020-08-20 15:13:12 -04:00
assert.NoError(err)
assert.NotNil(set)
id, err := newHostSetId(ctx)
2020-08-20 15:13:12 -04:00
assert.NoError(err)
assert.NotEmpty(id)
set.PublicId = id
w := db.New(conn)
err2 := w.Create(ctx, set)
2020-08-20 15:13:12 -04:00
assert.NoError(err2)
sets = append(sets, set)
}
return sets
}
2020-08-26 12:31:18 -04:00
// 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 {
2020-08-26 12:31:18 -04:00
t.Helper()
assert := assert.New(t)
ctx := context.Background()
2020-08-26 12:31:18 -04:00
var members []*HostSetMember
for _, host := range hosts {
member, err := NewHostSetMember(ctx, setId, host.PublicId)
2020-08-26 12:31:18 -04:00
assert.NoError(err)
assert.NotNil(member)
w := db.New(conn)
err2 := w.Create(ctx, member)
2020-08-26 12:31:18 -04:00
assert.NoError(err2)
members = append(members, member)
}
return members
}