dnscontrol/pkg/diff2/groupsort_test.go
2023-05-20 13:21:45 -04:00

52 lines
1.4 KiB
Go

package diff2
import (
"reflect"
"testing"
"github.com/StackExchange/dnscontrol/v4/models"
)
func makeRec(label, rtype, content string) *models.RecordConfig {
origin := "f.com"
r := models.RecordConfig{TTL: 300}
r.SetLabel(label, origin)
r.PopulateFromString(rtype, content, origin)
return &r
}
func makeRecTTL(label, rtype, content string, ttl uint32) *models.RecordConfig {
r := makeRec(label, rtype, content)
r.TTL = ttl
return r
}
func makeRecSet(recs ...*models.RecordConfig) *recset {
result := recset{}
result.Key = recs[0].Key()
result.Recs = append(result.Recs, recs...)
return &result
}
func Test_groupbyRSet(t *testing.T) {
wwwa1 := makeRec("www", "A", "1.1.1.1")
wwwa2 := makeRec("www", "A", "2.2.2.2")
zzza1 := makeRec("zzz", "A", "1.1.0.0")
zzza2 := makeRec("zzz", "A", "2.2.0.0")
wwwmx1 := makeRec("www", "MX", "1 mx1.foo.com.")
wwwmx2 := makeRec("www", "MX", "2 mx2.foo.com.")
zzzmx1 := makeRec("zzz", "MX", "1 mx.foo.com.")
orig := models.Records{wwwa1, wwwa2, zzza1, zzza2, wwwmx1, wwwmx2, zzzmx1}
wantResult := []recset{
*makeRecSet(wwwa1, wwwa2),
*makeRecSet(wwwmx1, wwwmx2),
*makeRecSet(zzza1, zzza2),
*makeRecSet(zzzmx1),
}
t.Run("afew", func(t *testing.T) {
if gotResult := groupbyRSet(orig, "f.com"); !reflect.DeepEqual(gotResult, wantResult) {
t.Errorf("groupbyRSet() = %v, want %v", gotResult, wantResult)
}
})
}