open-nomad/nomad/state/paginator/tokenizer_test.go

71 lines
1.4 KiB
Go

package paginator
import (
"fmt"
"testing"
"github.com/hashicorp/nomad/ci"
"github.com/hashicorp/nomad/nomad/mock"
"github.com/stretchr/testify/require"
)
func TestStructsTokenizer(t *testing.T) {
ci.Parallel(t)
j := mock.Job()
cases := []struct {
name string
opts StructsTokenizerOptions
expected string
}{
{
name: "ID",
opts: StructsTokenizerOptions{
WithID: true,
},
expected: fmt.Sprintf("%v", j.ID),
},
{
name: "Namespace.ID",
opts: StructsTokenizerOptions{
WithNamespace: true,
WithID: true,
},
expected: fmt.Sprintf("%v.%v", j.Namespace, j.ID),
},
{
name: "CreateIndex.Namespace.ID",
opts: StructsTokenizerOptions{
WithCreateIndex: true,
WithNamespace: true,
WithID: true,
},
expected: fmt.Sprintf("%v.%v.%v", j.CreateIndex, j.Namespace, j.ID),
},
{
name: "CreateIndex.ID",
opts: StructsTokenizerOptions{
WithCreateIndex: true,
WithID: true,
},
expected: fmt.Sprintf("%v.%v", j.CreateIndex, j.ID),
},
{
name: "CreateIndex.Namespace",
opts: StructsTokenizerOptions{
WithCreateIndex: true,
WithNamespace: true,
},
expected: fmt.Sprintf("%v.%v", j.CreateIndex, j.Namespace),
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
tokenizer := StructsTokenizer{opts: tc.opts}
require.Equal(t, tc.expected, tokenizer.GetToken(j))
})
}
}