github.com/kubeshop/testkube@v1.17.23/contrib/executor/jmeterd/pkg/slaves/meta_test.go (about)

     1  package slaves
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestSlaveMeta_Names(t *testing.T) {
    11  	t.Parallel()
    12  
    13  	meta := SlaveMeta{
    14  		"slave1": "192.168.1.1",
    15  		"slave2": "192.168.1.2",
    16  	}
    17  	names := meta.Names()
    18  	assert.Len(t, names, 2)
    19  	assert.Contains(t, names, "slave1")
    20  	assert.Contains(t, names, "slave2")
    21  }
    22  
    23  func TestSlaveMeta_IPs(t *testing.T) {
    24  	t.Parallel()
    25  
    26  	meta := SlaveMeta{
    27  		"slave1": "192.168.1.1",
    28  		"slave2": "192.168.1.2",
    29  	}
    30  	ips := meta.IPs()
    31  	assert.Len(t, ips, 2)
    32  	assert.Contains(t, ips, "192.168.1.1")
    33  	assert.Contains(t, ips, "192.168.1.2")
    34  }
    35  
    36  func TestSlaveMeta_ToIPString(t *testing.T) {
    37  	t.Parallel()
    38  
    39  	tests := []struct {
    40  		name     string
    41  		meta     SlaveMeta
    42  		expected string
    43  	}{
    44  		{
    45  			name:     "Empty",
    46  			meta:     SlaveMeta{},
    47  			expected: "",
    48  		},
    49  		{
    50  			name:     "Single",
    51  			meta:     SlaveMeta{"slave1": "192.168.1.1"},
    52  			expected: "192.168.1.1",
    53  		},
    54  		{
    55  			name:     "Multiple",
    56  			meta:     SlaveMeta{"slave1": "192.168.1.1", "slave2": "192.168.1.2"},
    57  			expected: "192.168.1.1,192.168.1.2",
    58  		},
    59  	}
    60  
    61  	for _, tt := range tests {
    62  		t.Run(tt.name, func(t *testing.T) {
    63  			ipString := tt.meta.ToIPString()
    64  			assert.ElementsMatch(t, strings.Split(tt.expected, ","), strings.Split(ipString, ","))
    65  		})
    66  	}
    67  }