From f9cdda1ee91fc4d4f49362704bbee87f0f137096 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 10 Oct 2023 22:40:23 -0600 Subject: [PATCH] Add tests for FindDiscoverableNode Signed-off-by: Jonathon Anderson --- internal/pkg/node/constuctors_test.go | 36 ++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/internal/pkg/node/constuctors_test.go b/internal/pkg/node/constuctors_test.go index 2c198d73..0aacf659 100644 --- a/internal/pkg/node/constuctors_test.go +++ b/internal/pkg/node/constuctors_test.go @@ -2,7 +2,7 @@ package node import ( "testing" - + "github.com/stretchr/testify/assert" "gopkg.in/yaml.v2" ) @@ -41,6 +41,7 @@ nodes: _ = yaml.Unmarshal([]byte(data), &ret) return ret } + func Test_Primary_Network(t *testing.T) { c := newConstructorPrimaryNetworkTest() nodes, _ := c.FindAllNodes() @@ -105,3 +106,36 @@ func Test_Primary_Network(t *testing.T) { } }) } + + +var findDiscoverableNodeTests = []struct{ + description string + discoverable_nodes []string + discovered_node string + discovered_interface string + succeed bool +}{ + {"no discoverable nodes", []string{}, "", "", false}, + {"all nodes discoverable", []string{"test_node1", "test_node2", "test_node3", "test_node4"}, "test_node1", "net0", true}, + {"discover primary", []string{"test_node2"}, "test_node2", "net1", true}, + {"discovery without primary", []string{"test_node3"}, "test_node3", "net0", true}, +} + +func Test_FindDiscoverableNode(t *testing.T) { + for _, tt := range findDiscoverableNodeTests { + t.Run(tt.description, func(t *testing.T) { + config := newConstructorPrimaryNetworkTest() + for _, node := range tt.discoverable_nodes { + config.Nodes[node].Discoverable = "true" + } + discovered_node, discovered_interface, err := config.FindDiscoverableNode() + if !tt.succeed { + assert.Error(t, err) + } else { + assert.NoError(t, err) + assert.Equal(t, tt.discovered_node, discovered_node.Id.Get()) + assert.Equal(t, tt.discovered_interface, discovered_interface) + } + }) + } +}