dnscontrol/models/record_test.go
Ed Bardsley 61c92c9215 Correctly group R53_ALIAS records during IncrementalDiff. (#399)
Previously, unnecessary corrections were possible if both an R53_ALIAS
pointing to an A record and to an AAAA record existed for the same label,
and map iteration over existing and desired found them in different orders.
(This is a common configuration for IPv6-enabled records.)

This commit:
 * mirrors key logic in the R53 provider
 * centralizes logic around keys in the models package
 * adds tests
2018-09-04 10:55:27 -04:00

34 lines
777 B
Go

package models
import "testing"
func TestKey(t *testing.T) {
var tests = []struct {
rc RecordConfig
expected RecordKey
}{
{
RecordConfig{Type: "A", Name: "@"},
RecordKey{Type: "A", Name: "@"},
},
{
RecordConfig{Type: "R53_ALIAS", Name: "@"},
RecordKey{Type: "R53_ALIAS", Name: "@"},
},
{
RecordConfig{Type: "R53_ALIAS", Name: "@", R53Alias: map[string]string{"foo": "bar"}},
RecordKey{Type: "R53_ALIAS", Name: "@"},
},
{
RecordConfig{Type: "R53_ALIAS", Name: "@", R53Alias: map[string]string{"type": "AAAA"}},
RecordKey{Type: "R53_ALIAS_AAAA", Name: "@"},
},
}
for i, test := range tests {
actual := test.rc.Key()
if test.expected != actual {
t.Errorf("%d: Expected %s, got %s", i, test.expected, actual)
}
}
}