perf(go): simplify realtime plate lookup

This commit is contained in:
lingniu
2026-07-03 07:57:04 +08:00
parent 0aa71402d1
commit 2af2ba3367
3 changed files with 24 additions and 2 deletions

View File

@@ -216,6 +216,28 @@ func TestSnapshotWriterBackfillsPlateFromBindingByVIN(t *testing.T) {
}
}
func TestBindingPlateResolverUsesPrimaryKeyLookupWithoutSort(t *testing.T) {
db, mock, err := sqlmock.New()
if err != nil {
t.Fatalf("sqlmock.New() error = %v", err)
}
defer db.Close()
mock.ExpectQuery("SELECT plate FROM vehicle_identity_binding WHERE vin = \\? AND plate IS NOT NULL AND plate <> ''$").
WithArgs("VIN001").
WillReturnRows(sqlmock.NewRows([]string{"plate"}).AddRow("沪A12345"))
plate, err := NewBindingPlateResolver(db, "vehicle_identity_binding").PlateByVIN(context.Background(), " VIN001 ")
if err != nil {
t.Fatalf("PlateByVIN() error = %v", err)
}
if plate != "沪A12345" {
t.Fatalf("plate = %q", plate)
}
if err := mock.ExpectationsWereMet(); err != nil {
t.Fatalf("sql expectations: %v", err)
}
}
func TestSnapshotWriterCachesBindingPlateByVIN(t *testing.T) {
exec := &recordingSnapshotExec{}
resolver := &recordingPlateResolver{plate: "沪A12345"}