This commit is contained in:
Quentin McGaw
2020-10-28 22:09:58 +00:00
parent edc08c46d4
commit f7bff247aa
2 changed files with 83 additions and 1 deletions

View File

@@ -30,7 +30,7 @@ func newCyberghost(servers []models.CyberghostServer, timeNow timeNowFunc) *cybe
func (c *cyberghost) filterServers(regions []string, group string) (servers []models.CyberghostServer) {
for _, server := range c.servers {
switch {
case len(group) > 0 && group != server.Group,
case len(group) > 0 && !strings.EqualFold(group, server.Group),
filterByPossibilities(server.Region, regions):
default:
servers = append(servers, server)

View File

@@ -0,0 +1,82 @@
package provider
import (
"testing"
"github.com/qdm12/gluetun/internal/models"
"github.com/stretchr/testify/assert"
)
func Test_cyberghost_filterServers(t *testing.T) {
t.Parallel()
testCases := map[string]struct {
servers []models.CyberghostServer
regions []string
group string
filteredServers []models.CyberghostServer
}{
"no servers": {},
"servers without filter": {
servers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "b", Group: "1"},
{Region: "c", Group: "2"},
{Region: "d", Group: "2"},
},
filteredServers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "b", Group: "1"},
{Region: "c", Group: "2"},
{Region: "d", Group: "2"},
},
},
"servers with regions filter": {
servers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "b", Group: "1"},
{Region: "c", Group: "2"},
{Region: "d", Group: "2"},
},
regions: []string{"a", "c"},
filteredServers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "c", Group: "2"},
},
},
"servers with group filter": {
servers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "b", Group: "1"},
{Region: "c", Group: "2"},
{Region: "d", Group: "2"},
},
group: "1",
filteredServers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "b", Group: "1"},
},
},
"servers with regions and group filter": {
servers: []models.CyberghostServer{
{Region: "a", Group: "1"},
{Region: "b", Group: "1"},
{Region: "c", Group: "2"},
{Region: "d", Group: "2"},
},
regions: []string{"a", "c"},
group: "1",
filteredServers: []models.CyberghostServer{
{Region: "a", Group: "1"},
},
},
}
for name, testCase := range testCases {
testCase := testCase
t.Run(name, func(t *testing.T) {
t.Parallel()
c := &cyberghost{servers: testCase.servers}
filteredServers := c.filterServers(testCase.regions, testCase.group)
assert.Equal(t, testCase.filteredServers, filteredServers)
})
}
}