mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
NEW FEATURE: diff2: A better "diff" mechanism (#1852)
This commit is contained in:
147
pkg/diff2/unmanaged_test.go
Normal file
147
pkg/diff2/unmanaged_test.go
Normal file
@@ -0,0 +1,147 @@
|
||||
package diff2
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/StackExchange/dnscontrol/v3/models"
|
||||
"github.com/gobwas/glob"
|
||||
)
|
||||
|
||||
var rmapNil map[string]bool
|
||||
var rmapAMX = map[string]bool{
|
||||
"A": true,
|
||||
"MX": true,
|
||||
}
|
||||
var rmapCNAME = map[string]bool{
|
||||
"CNAME": true,
|
||||
}
|
||||
|
||||
func Test_match(t *testing.T) {
|
||||
|
||||
testRecLammaA1234 := makeRec("lamma", "A", "1.2.3.4")
|
||||
|
||||
type args struct {
|
||||
rc *models.RecordConfig
|
||||
glabel glob.Glob
|
||||
gtarget glob.Glob
|
||||
hasRType map[string]bool
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want bool
|
||||
}{
|
||||
|
||||
{
|
||||
name: "match3",
|
||||
args: args{
|
||||
rc: testRecLammaA1234,
|
||||
glabel: glob.MustCompile("lam*"),
|
||||
hasRType: rmapAMX,
|
||||
gtarget: glob.MustCompile("1.2.3.*"),
|
||||
},
|
||||
want: true,
|
||||
},
|
||||
|
||||
{
|
||||
name: "match2",
|
||||
args: args{
|
||||
rc: testRecLammaA1234,
|
||||
glabel: glob.MustCompile("lam*"),
|
||||
hasRType: rmapAMX,
|
||||
gtarget: nil,
|
||||
},
|
||||
want: true,
|
||||
},
|
||||
|
||||
{
|
||||
name: "match1",
|
||||
args: args{
|
||||
rc: testRecLammaA1234,
|
||||
glabel: glob.MustCompile("lam*"),
|
||||
hasRType: rmapNil,
|
||||
gtarget: nil,
|
||||
},
|
||||
want: true,
|
||||
},
|
||||
|
||||
{
|
||||
name: "reject1",
|
||||
args: args{
|
||||
rc: testRecLammaA1234,
|
||||
glabel: glob.MustCompile("yyyy"),
|
||||
hasRType: rmapAMX,
|
||||
gtarget: glob.MustCompile("1.2.3.*"),
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
|
||||
{
|
||||
name: "reject2",
|
||||
args: args{
|
||||
rc: testRecLammaA1234,
|
||||
glabel: glob.MustCompile("lam*"),
|
||||
hasRType: rmapCNAME,
|
||||
gtarget: glob.MustCompile("1.2.3.*"),
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
|
||||
{
|
||||
name: "reject3",
|
||||
args: args{
|
||||
rc: testRecLammaA1234,
|
||||
glabel: glob.MustCompile("lam*"),
|
||||
hasRType: rmapAMX,
|
||||
gtarget: glob.MustCompile("zzzzz"),
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := match(tt.args.rc, tt.args.glabel, tt.args.gtarget, tt.args.hasRType); got != tt.want {
|
||||
t.Errorf("match() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_matchType(t *testing.T) {
|
||||
type args struct {
|
||||
s string
|
||||
hasRType map[string]bool
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want bool
|
||||
}{
|
||||
|
||||
{
|
||||
name: "matchCNAME",
|
||||
args: args{"CNAME", rmapCNAME},
|
||||
want: true,
|
||||
},
|
||||
|
||||
{
|
||||
name: "rejectCNAME",
|
||||
args: args{"MX", rmapCNAME},
|
||||
want: false,
|
||||
},
|
||||
|
||||
{
|
||||
name: "matchNIL",
|
||||
args: args{"CNAME", rmapNil},
|
||||
want: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := matchType(tt.args.s, tt.args.hasRType); got != tt.want {
|
||||
t.Errorf("matchType() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user