func TestNullScan(t *testing.T) { expected := toki.MustParseNullTime("12:34") byteTime := toki.NullTime{} err := byteTime.Scan([]byte("12:34:00")) if err != nil { t.Errorf("Scan: error: %v", err) } if byteTime != expected { t.Errorf("Scan: %#v ≠ %#v", byteTime, expected) } nullTime := toki.NullTime{} err = nullTime.Scan(nil) if err != nil { t.Errorf("Scan: error: %v", err) } if nullTime.Valid { t.Errorf("Scan: not null, got %s", nullTime.String()) } emptyTime := toki.NullTime{} err = emptyTime.Scan("") if err != nil { t.Errorf("Scan: error: %v", err) } if emptyTime.Valid { t.Errorf("Scan: not null, got %s", emptyTime.String()) } emptyByteTime := toki.NullTime{} err = emptyByteTime.Scan([]byte{}) if err != nil { t.Errorf("Scan: error: %v", err) } if emptyByteTime.Valid { t.Errorf("Scan: not null, got %s", emptyByteTime.String()) } }