mirror of https://github.com/portainer/portainer
122 lines
4.0 KiB
Go
122 lines
4.0 KiB
Go
package endpointutils
|
|
|
|
import (
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type isEndpointTypeTest struct {
|
|
endpointType portainer.EndpointType
|
|
expected bool
|
|
}
|
|
|
|
func Test_IsDockerEndpoint(t *testing.T) {
|
|
tests := []isEndpointTypeTest{
|
|
{endpointType: portainer.DockerEnvironment, expected: true},
|
|
{endpointType: portainer.AgentOnDockerEnvironment, expected: true},
|
|
{endpointType: portainer.AzureEnvironment, expected: false},
|
|
{endpointType: portainer.EdgeAgentOnDockerEnvironment, expected: true},
|
|
{endpointType: portainer.KubernetesLocalEnvironment, expected: false},
|
|
{endpointType: portainer.AgentOnKubernetesEnvironment, expected: false},
|
|
{endpointType: portainer.EdgeAgentOnKubernetesEnvironment, expected: false},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
ans := IsDockerEndpoint(&portainer.Endpoint{Type: test.endpointType})
|
|
assert.Equal(t, test.expected, ans)
|
|
}
|
|
}
|
|
|
|
func Test_IsKubernetesEndpoint(t *testing.T) {
|
|
tests := []isEndpointTypeTest{
|
|
{endpointType: portainer.DockerEnvironment, expected: false},
|
|
{endpointType: portainer.AgentOnDockerEnvironment, expected: false},
|
|
{endpointType: portainer.AzureEnvironment, expected: false},
|
|
{endpointType: portainer.EdgeAgentOnDockerEnvironment, expected: false},
|
|
{endpointType: portainer.KubernetesLocalEnvironment, expected: true},
|
|
{endpointType: portainer.AgentOnKubernetesEnvironment, expected: true},
|
|
{endpointType: portainer.EdgeAgentOnKubernetesEnvironment, expected: true},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
ans := IsKubernetesEndpoint(&portainer.Endpoint{Type: test.endpointType})
|
|
assert.Equal(t, test.expected, ans)
|
|
}
|
|
}
|
|
|
|
func Test_IsAgentEndpoint(t *testing.T) {
|
|
tests := []isEndpointTypeTest{
|
|
{endpointType: portainer.DockerEnvironment, expected: false},
|
|
{endpointType: portainer.AgentOnDockerEnvironment, expected: true},
|
|
{endpointType: portainer.AzureEnvironment, expected: false},
|
|
{endpointType: portainer.EdgeAgentOnDockerEnvironment, expected: true},
|
|
{endpointType: portainer.KubernetesLocalEnvironment, expected: false},
|
|
{endpointType: portainer.AgentOnKubernetesEnvironment, expected: true},
|
|
{endpointType: portainer.EdgeAgentOnKubernetesEnvironment, expected: true},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
ans := IsAgentEndpoint(&portainer.Endpoint{Type: test.endpointType})
|
|
assert.Equal(t, test.expected, ans)
|
|
}
|
|
}
|
|
|
|
func Test_FilterByExcludeIDs(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
inputArray []portainer.Endpoint
|
|
inputExcludeIDs []portainer.EndpointID
|
|
asserts func(*testing.T, []portainer.Endpoint)
|
|
}{
|
|
{
|
|
name: "filter endpoints",
|
|
inputArray: []portainer.Endpoint{
|
|
{ID: portainer.EndpointID(1)},
|
|
{ID: portainer.EndpointID(2)},
|
|
{ID: portainer.EndpointID(3)},
|
|
{ID: portainer.EndpointID(4)},
|
|
},
|
|
inputExcludeIDs: []portainer.EndpointID{
|
|
portainer.EndpointID(2),
|
|
portainer.EndpointID(3),
|
|
},
|
|
asserts: func(t *testing.T, output []portainer.Endpoint) {
|
|
assert.Contains(t, output, portainer.Endpoint{ID: portainer.EndpointID(1)})
|
|
assert.NotContains(t, output, portainer.Endpoint{ID: portainer.EndpointID(2)})
|
|
assert.NotContains(t, output, portainer.Endpoint{ID: portainer.EndpointID(3)})
|
|
assert.Contains(t, output, portainer.Endpoint{ID: portainer.EndpointID(4)})
|
|
},
|
|
},
|
|
{
|
|
name: "empty input",
|
|
inputArray: []portainer.Endpoint{},
|
|
inputExcludeIDs: []portainer.EndpointID{
|
|
portainer.EndpointID(2),
|
|
},
|
|
asserts: func(t *testing.T, output []portainer.Endpoint) {
|
|
assert.Equal(t, 0, len(output))
|
|
},
|
|
},
|
|
{
|
|
name: "no filter",
|
|
inputArray: []portainer.Endpoint{
|
|
{ID: portainer.EndpointID(1)},
|
|
{ID: portainer.EndpointID(2)},
|
|
},
|
|
inputExcludeIDs: []portainer.EndpointID{},
|
|
asserts: func(t *testing.T, output []portainer.Endpoint) {
|
|
assert.Equal(t, 2, len(output))
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
output := FilterByExcludeIDs(tt.inputArray, tt.inputExcludeIDs)
|
|
tt.asserts(t, output)
|
|
})
|
|
}
|
|
}
|