Select Git revision
object_id_test.go
object_id_test.go 21.96 KiB
package test
import (
"testing"
"git.perx.ru/perxis/perxis-go/id"
_ "git.perx.ru/perxis/perxis-go/id/system"
"git.perx.ru/perxis/perxis-go/pkg/clients"
"git.perx.ru/perxis/perxis-go/pkg/collections"
"git.perx.ru/perxis/perxis-go/pkg/environments"
"git.perx.ru/perxis/perxis-go/pkg/items"
"git.perx.ru/perxis/perxis-go/pkg/locales"
"git.perx.ru/perxis/perxis-go/pkg/organizations"
"git.perx.ru/perxis/perxis-go/pkg/roles"
"git.perx.ru/perxis/perxis-go/pkg/spaces"
"git.perx.ru/perxis/perxis-go/pkg/users"
"github.com/stretchr/testify/require"
)
func Test_OrganizationId(t *testing.T) {
tests := []struct {
name string
in any
out string
result *id.ObjectId
err error
}{
{
name: "valid string",
in: "/orgs/<org_id>",
result: &id.ObjectId{Descriptor: &id.OrganizationId{OrganizationID: "<org_id>"}},
},
{
name: "valid object",
in: &organizations.Organization{ID: "<org_id>"},
out: "/orgs/<org_id>",
result: &id.ObjectId{Descriptor: &id.OrganizationId{OrganizationID: "<org_id>"}},
},
{
name: "valid map",
in: map[string]any{"type": "organization", "org_id": "<org_id>"},
out: "/orgs/<org_id>",
result: &id.ObjectId{Descriptor: &id.OrganizationId{OrganizationID: "<org_id>"}},
},
{
name: "invalid map",
in: map[string]any{"type": "organization"},
out: "/orgs/<org_id>",
result: &id.ObjectId{Descriptor: &id.OrganizationId{OrganizationID: "<org_id>"}},
err: id.ErrInvalidID,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
i, err := id.NewObjectId(tt.in)
if tt.err != nil {
require.ErrorIs(t, err, tt.err)
return
}
require.NoError(t, err)
require.Equal(t, tt.result, i)
if tt.out == "" {
require.Equal(t, tt.in, i.String())
} else {
require.Equal(t, tt.out, i.String())
}