Files
ddns-updater/internal/helpers_test.go

84 lines
1.5 KiB
Go
Raw Permalink Normal View History

2023-04-28 23:09:40 +02:00
package internal
import (
"reflect"
"testing"
)
func Test_parseDNSToCheck(t *testing.T) {
type args struct {
data string
}
tests := []struct {
name string
args args
want []string
}{
{
name: "test parsing",
args: args{
data: "word1,word2,",
},
want: []string{"word1", "word2"},
},
{
name: "test parsing with spaces",
args: args{
data: " word1, word2 ",
},
want: []string{"word1", "word2"},
},
{
name: "test parsing with empty word",
args: args{
data: " word1, word2 ,",
},
want: []string{"word1", "word2"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
2023-05-04 11:44:27 +02:00
if got := parseCommaDelimited(tt.args.data); !reflect.DeepEqual(got, tt.want) {
t.Errorf("parseCommaDelimited() = %v, want %v", got, tt.want)
2023-04-28 23:09:40 +02:00
}
})
}
}
func TestContains(t *testing.T) {
type args[T comparable] struct {
haystack []T
needle T
}
type testCase[T comparable] struct {
name string
args args[T]
want bool
}
tests := []testCase[string]{
{
name: "yes",
args: args[string]{
haystack: []string{"w1", "w2"},
needle: "w1",
},
want: true,
},
{
name: "no",
args: args[string]{
haystack: []string{"w1", "w2"},
needle: "w3",
},
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := Contains(tt.args.haystack, tt.args.needle); got != tt.want {
t.Errorf("Contains() = %v, want %v", got, tt.want)
}
})
}
}