func TestShouldTransfer(t *testing.T) { soa := soa{250} dns.HandleFunc(testZone, soa.Handler) defer dns.HandleRemove(testZone) s, addrstr, err := test.TCPServer("127.0.0.1:0") if err != nil { t.Fatalf("unable to run test server: %v", err) } defer s.Shutdown() z := new(Zone) z.origin = testZone z.TransferFrom = []string{addrstr} // Serial smaller z.Apex.SOA = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, soa.serial-1)) should, err := z.shouldTransfer() if err != nil { t.Fatalf("unable to run shouldTransfer: %v", err) } if !should { t.Fatalf("shouldTransfer should return true for serial: %q", soa.serial-1) } // Serial equal z.Apex.SOA = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, soa.serial)) should, err = z.shouldTransfer() if err != nil { t.Fatalf("unable to run shouldTransfer: %v", err) } if should { t.Fatalf("shouldTransfer should return false for serial: %d", soa.serial) } }
func TestTransferIn(t *testing.T) { soa := soa{250} dns.HandleFunc(testZone, soa.Handler) defer dns.HandleRemove(testZone) s, addrstr, err := test.TCPServer("127.0.0.1:0") if err != nil { t.Fatalf("unable to run test server: %v", err) } defer s.Shutdown() z := new(Zone) z.Expired = new(bool) z.origin = testZone z.TransferFrom = []string{addrstr} err = z.TransferIn() if err != nil { t.Fatalf("unable to run TransferIn: %v", err) } if z.Apex.SOA.String() != fmt.Sprintf("%s 3600 IN SOA bla. bla. 250 0 0 0 0", testZone) { t.Fatalf("unknown SOA transferred") } }