From 909026ed3da9339fd889fce5f0225cfd55d7f6c4 Mon Sep 17 00:00:00 2001 From: Todd Knight Date: Mon, 22 Feb 2021 14:37:14 -0700 Subject: [PATCH] API filter tests (#958) * API filter tests. Requires that PR https://github.com/hashicorp/boundary/pull/957 is merged and tagged first. * Updating /api dependency. --- go.mod | 2 +- internal/tests/api/accounts/account_test.go | 7 +++++++ internal/tests/api/authtokens/authtoken_test.go | 8 ++++++++ internal/tests/api/groups/group_test.go | 7 +++++++ internal/tests/api/hostcatalogs/host_catalog_test.go | 7 +++++++ internal/tests/api/hosts/host_test.go | 7 +++++++ internal/tests/api/hostsets/host_set_test.go | 7 +++++++ internal/tests/api/roles/role_test.go | 7 +++++++ internal/tests/api/scopes/scope_test.go | 7 +++++++ internal/tests/api/targets/target_test.go | 7 +++++++ internal/tests/api/users/user_test.go | 7 +++++++ 11 files changed, 72 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 8a0b00c77..d26dfd803 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/golang/protobuf v1.4.3 github.com/google/go-cmp v0.5.4 github.com/grpc-ecosystem/grpc-gateway/v2 v2.2.0 - github.com/hashicorp/boundary/api v0.0.5 + github.com/hashicorp/boundary/api v0.0.6 github.com/hashicorp/boundary/sdk v0.0.3 github.com/hashicorp/dbassert v0.0.0-20200930125617-6218396928df github.com/hashicorp/errwrap v1.1.0 diff --git a/internal/tests/api/accounts/account_test.go b/internal/tests/api/accounts/account_test.go index 6d71e48f5..600352aec 100644 --- a/internal/tests/api/accounts/account_test.go +++ b/internal/tests/api/accounts/account_test.go @@ -57,6 +57,13 @@ func TestList(t *testing.T) { ulResult, err = accountClient.List(tc.Context(), am.Id) require.NoError(err) assert.ElementsMatch(comparableSlice(expected), comparableSlice(ulResult.Items)) + + filterItem := expected[3] + ulResult, err = accountClient.List(tc.Context(), am.Id, + accounts.WithFilter(fmt.Sprintf(`"/item/attributes/login_name"==%q`, filterItem.Attributes["login_name"]))) + require.NoError(err) + assert.Len(ulResult.Items, 1) + assert.Equal(filterItem.Id, ulResult.Items[0].Id) } func comparableSlice(in []*accounts.Account) []accounts.Account { diff --git a/internal/tests/api/authtokens/authtoken_test.go b/internal/tests/api/authtokens/authtoken_test.go index f15f3e4ec..11af6c098 100644 --- a/internal/tests/api/authtokens/authtoken_test.go +++ b/internal/tests/api/authtokens/authtoken_test.go @@ -1,6 +1,7 @@ package authtokens_test import ( + "fmt" "net/http" "sort" "testing" @@ -74,6 +75,13 @@ func TestList(t *testing.T) { atl, err = tokens.List(tc.Context(), org.GetPublicId()) require.NoError(err) assert.ElementsMatch(comparableSlice(expected), comparableSlice(atl.Items)) + + filterItem := atl.Items[3] + atl, err = tokens.List(tc.Context(), org.GetPublicId(), + authtokens.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(atl.Items, 1) + assert.Equal(filterItem.Id, atl.Items[0].Id) } func comparableResource(i *authtokens.AuthToken) authtokens.AuthToken { diff --git a/internal/tests/api/groups/group_test.go b/internal/tests/api/groups/group_test.go index 7afb42c80..0043e0f7c 100644 --- a/internal/tests/api/groups/group_test.go +++ b/internal/tests/api/groups/group_test.go @@ -56,6 +56,13 @@ func TestList(t *testing.T) { require.NotNil(pl) require.Len(pl.Items, 10) assert.ElementsMatch(comparableSlice(expected), comparableSlice(pl.Items)) + + filterItem := pl.Items[3] + pl, err = grps.List(tc.Context(), tt.scopeId, + groups.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(pl.Items, 1) + assert.Equal(filterItem.Id, pl.Items[0].Id) }) } } diff --git a/internal/tests/api/hostcatalogs/host_catalog_test.go b/internal/tests/api/hostcatalogs/host_catalog_test.go index 4bf819b63..56ad435dd 100644 --- a/internal/tests/api/hostcatalogs/host_catalog_test.go +++ b/internal/tests/api/hostcatalogs/host_catalog_test.go @@ -50,6 +50,13 @@ func TestList(t *testing.T) { ul, err = catalogClient.List(tc.Context(), proj.GetPublicId()) require.NoError(err) assert.ElementsMatch(comparableCatalogSlice(expected), comparableCatalogSlice(ul.Items)) + + filterItem := ul.Items[3] + ul, err = catalogClient.List(tc.Context(), proj.GetPublicId(), + hostcatalogs.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(ul.Items, 1) + assert.Equal(filterItem.Id, ul.Items[0].Id) } func comparableCatalogSlice(in []*hostcatalogs.HostCatalog) []hostcatalogs.HostCatalog { diff --git a/internal/tests/api/hosts/host_test.go b/internal/tests/api/hosts/host_test.go index 6fe17aad9..a4ff9d6e2 100644 --- a/internal/tests/api/hosts/host_test.go +++ b/internal/tests/api/hosts/host_test.go @@ -56,6 +56,13 @@ func TestList(t *testing.T) { ul, err = hClient.List(tc.Context(), hc.Item.Id) require.NoError(err) assert.ElementsMatch(comparableHostSlice(expected), comparableHostSlice(ul.Items)) + + filterItem := ul.Items[3] + ul, err = hClient.List(tc.Context(), hc.Item.Id, + hosts.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(ul.Items, 1) + assert.Equal(filterItem.Id, ul.Items[0].Id) } func comparableHostSlice(in []*hosts.Host) []hosts.Host { diff --git a/internal/tests/api/hostsets/host_set_test.go b/internal/tests/api/hostsets/host_set_test.go index f72b880f0..0861b209a 100644 --- a/internal/tests/api/hostsets/host_set_test.go +++ b/internal/tests/api/hostsets/host_set_test.go @@ -93,6 +93,13 @@ func TestList(t *testing.T) { ul, err = hClient.List(tc.Context(), hc.Item.Id) require.NoError(err) assert.ElementsMatch(comparableSetSlice(expected), comparableSetSlice(ul.Items)) + + filterItem := ul.Items[3] + ul, err = hClient.List(tc.Context(), hc.Item.Id, + hostsets.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(ul.Items, 1) + assert.Equal(filterItem.Id, ul.Items[0].Id) } func comparableSetSlice(in []*hostsets.HostSet) []hostsets.HostSet { diff --git a/internal/tests/api/roles/role_test.go b/internal/tests/api/roles/role_test.go index 23e24d2b9..f0902e4e6 100644 --- a/internal/tests/api/roles/role_test.go +++ b/internal/tests/api/roles/role_test.go @@ -172,6 +172,13 @@ func TestList(t *testing.T) { p3, err := roleClient.List(tc.Context(), tt.scopeId) require.NoError(err) assert.ElementsMatch(comparableSlice(expected), comparableSlice(p3.Items)) + + filterItem := p3.Items[3] + p3, err = roleClient.List(tc.Context(), tt.scopeId, + roles.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(p3.Items, 1) + assert.Equal(filterItem.Id, p3.Items[0].Id) }) } } diff --git a/internal/tests/api/scopes/scope_test.go b/internal/tests/api/scopes/scope_test.go index 7e0138912..fc92c01d4 100644 --- a/internal/tests/api/scopes/scope_test.go +++ b/internal/tests/api/scopes/scope_test.go @@ -38,6 +38,13 @@ func TestList(t *testing.T) { pl, err = scps.List(tc.Context(), org.GetPublicId()) require.NoError(err) assert.ElementsMatch(comparableSlice(expected), comparableSlice(pl.Items)) + + filterItem := pl.Items[3] + pl, err = scps.List(tc.Context(), org.GetPublicId(), + scopes.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(pl.Items, 1) + assert.Equal(filterItem.Id, pl.Items[0].Id) } func comparableSlice(in []*scopes.Scope) []scopes.Scope { diff --git a/internal/tests/api/targets/target_test.go b/internal/tests/api/targets/target_test.go index 538db5592..5c466dd89 100644 --- a/internal/tests/api/targets/target_test.go +++ b/internal/tests/api/targets/target_test.go @@ -95,6 +95,13 @@ func TestList(t *testing.T) { ul, err = tarClient.List(tc.Context(), proj.GetPublicId()) require.NoError(err) assert.ElementsMatch(comparableSlice(expected), comparableSlice(ul.Items)) + + filterItem := ul.Items[3] + ul, err = tarClient.List(tc.Context(), proj.GetPublicId(), + targets.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(ul.Items, 1) + assert.Equal(filterItem.Id, ul.Items[0].Id) } func comparableSlice(in []*targets.Target) []targets.Target { diff --git a/internal/tests/api/users/user_test.go b/internal/tests/api/users/user_test.go index 4ee79374f..acd0a45cf 100644 --- a/internal/tests/api/users/user_test.go +++ b/internal/tests/api/users/user_test.go @@ -90,6 +90,13 @@ func TestList(t *testing.T) { ul, err = userClient.List(tc.Context(), org.GetPublicId()) require.NoError(err) assert.ElementsMatch(comparableSlice(expected), comparableSlice(ul.Items)) + + filterItem := ul.Items[3] + ul, err = userClient.List(tc.Context(), org.GetPublicId(), + users.WithFilter(fmt.Sprintf(`"/item/id"==%q`, filterItem.Id))) + require.NoError(err) + assert.Len(ul.Items, 1) + assert.Equal(filterItem.Id, ul.Items[0].Id) } func comparableSlice(in []*users.User) []users.User {