2023-04-10 15:36:59 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
|
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
2022-08-12 07:52:32 +00:00
|
|
|
package command
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/hashicorp/nomad/api"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Test_formatACLRole(t *testing.T) {
|
|
|
|
inputACLRole := api.ACLRole{
|
|
|
|
ID: "this-is-usually-a-uuid",
|
|
|
|
Name: "this-is-my-friendly-name",
|
|
|
|
Description: "this-is-my-friendly-name",
|
|
|
|
Policies: []*api.ACLRolePolicyLink{
|
|
|
|
{Name: "policy-link-1"},
|
|
|
|
{Name: "policy-link-2"},
|
|
|
|
{Name: "policy-link-3"},
|
|
|
|
{Name: "policy-link-4"},
|
|
|
|
},
|
|
|
|
CreateIndex: 13,
|
|
|
|
ModifyIndex: 1313,
|
|
|
|
}
|
|
|
|
expectedOutput := "ID = this-is-usually-a-uuid\nName = this-is-my-friendly-name\nDescription = this-is-my-friendly-name\nPolicies = policy-link-1,policy-link-2,policy-link-3,policy-link-4\nCreate Index = 13\nModify Index = 1313"
|
|
|
|
actualOutput := formatACLRole(&inputACLRole)
|
|
|
|
require.Equal(t, expectedOutput, actualOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_aclRolePolicyLinkToStringList(t *testing.T) {
|
|
|
|
inputPolicyLinks := []*api.ACLRolePolicyLink{
|
|
|
|
{Name: "z-policy-link-1"},
|
|
|
|
{Name: "a-policy-link-2"},
|
|
|
|
{Name: "policy-link-3"},
|
|
|
|
{Name: "b-policy-link-4"},
|
|
|
|
}
|
|
|
|
expectedOutput := []string{
|
|
|
|
"a-policy-link-2",
|
|
|
|
"b-policy-link-4",
|
|
|
|
"policy-link-3",
|
|
|
|
"z-policy-link-1",
|
|
|
|
}
|
|
|
|
actualOutput := aclRolePolicyLinkToStringList(inputPolicyLinks)
|
|
|
|
require.Equal(t, expectedOutput, actualOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_aclRolePolicyNamesToPolicyLinks(t *testing.T) {
|
|
|
|
inputPolicyNames := []string{
|
|
|
|
"policy-link-1", "policy-link-2", "policy-link-3", "policy-link-4",
|
|
|
|
"policy-link-1", "policy-link-2", "policy-link-3", "policy-link-4",
|
|
|
|
"policy-link-1", "policy-link-2", "policy-link-3", "policy-link-4",
|
|
|
|
"policy-link-1", "policy-link-2", "policy-link-3", "policy-link-4",
|
|
|
|
}
|
|
|
|
expectedOutput := []*api.ACLRolePolicyLink{
|
|
|
|
{Name: "policy-link-1"},
|
|
|
|
{Name: "policy-link-2"},
|
|
|
|
{Name: "policy-link-3"},
|
|
|
|
{Name: "policy-link-4"},
|
|
|
|
}
|
|
|
|
actualOutput := aclRolePolicyNamesToPolicyLinks(inputPolicyNames)
|
|
|
|
require.ElementsMatch(t, expectedOutput, actualOutput)
|
|
|
|
}
|