1package fingerprint
2
3// This file contains helper methods for testing fingerprinters
4
5import (
6	"testing"
7
8	"github.com/hashicorp/nomad/client/config"
9	"github.com/hashicorp/nomad/nomad/structs"
10	"github.com/stretchr/testify/require"
11)
12
13func assertFingerprintOK(t *testing.T, fp Fingerprint, node *structs.Node) *FingerprintResponse {
14	request := &FingerprintRequest{Config: new(config.Config), Node: node}
15	var response FingerprintResponse
16	err := fp.Fingerprint(request, &response)
17	require.NoError(t, err)
18
19	require.NotEmpty(t, response.Attributes, "Failed to apply node attributes")
20
21	return &response
22}
23
24func assertNodeAttributeContains(t *testing.T, nodeAttributes map[string]string, attribute string) {
25	require.NotNil(t, nodeAttributes, "expected an initialized map for node attributes")
26
27	require.Contains(t, nodeAttributes, attribute)
28	require.NotEmpty(t, nodeAttributes[attribute])
29}
30
31func assertNodeAttributeEquals(t *testing.T, nodeAttributes map[string]string, attribute string, expected string) {
32	require.NotNil(t, nodeAttributes, "expected an initialized map for node attributes")
33
34	require.Contains(t, nodeAttributes, attribute)
35	require.Equal(t, expected, nodeAttributes[attribute])
36}
37
38func assertNodeLinksContains(t *testing.T, nodeLinks map[string]string, link string) {
39	require.NotNil(t, nodeLinks, "expected an initialized map for node links")
40
41	require.Contains(t, nodeLinks, link)
42	require.NotEmpty(t, nodeLinks[link])
43}
44