MCPcopy Create free account
hub / github.com/DATA-DOG/go-sqlmock / queryRowBytesInvalidatedByNext

Function queryRowBytesInvalidatedByNext

rows_test.go:514–561  ·  view source on GitHub ↗
(t *testing.T, rows *Rows, scan func(*sql.Rows) ([]byte, error), want []struct {
	Initial  []byte
	Replaced []byte
})

Source from the content-addressed store, hash-verified

512}
513
514func queryRowBytesInvalidatedByNext(t *testing.T, rows *Rows, scan func(*sql.Rows) ([]byte, error), want []struct {
515 Initial []byte
516 Replaced []byte
517}) {
518 db, mock, err := New()
519 if err != nil {
520 t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
521 }
522 defer db.Close()
523 mock.ExpectQuery("SELECT").WillReturnRows(rows)
524
525 rs, err := db.Query("SELECT")
526 if err != nil {
527 t.Fatalf("failed to query rows: %s", err)
528 }
529
530 if !rs.Next() || rs.Err() != nil {
531 t.Fatal("unexpected error on first row retrieval")
532 }
533 var count int
534 for i := 0; ; i++ {
535 count++
536 b, err := scan(rs)
537 if err != nil {
538 t.Fatalf("unexpected error scanning row: %s", err)
539 }
540 if exp := want[i].Initial; !bytes.Equal(b, exp) {
541 t.Fatalf("expected raw value to be '%s' (len:%d), but got [%T]:%s (len:%d)", exp, len(exp), b, b, len(b))
542 }
543 next := rs.Next()
544 if exp := want[i].Replaced; !bytes.Equal(b, exp) {
545 t.Fatalf("expected raw value to be replaced with '%s' (len:%d) after calling Next(), but got [%T]:%s (len:%d)", exp, len(exp), b, b, len(b))
546 }
547 if !next {
548 break
549 }
550 }
551 if err := rs.Err(); err != nil {
552 t.Fatalf("row iteration failed: %s", err)
553 }
554 if exp := len(want); count != exp {
555 t.Fatalf("incorrect number of rows exp: %d, but got %d", exp, count)
556 }
557
558 if err := mock.ExpectationsWereMet(); err != nil {
559 t.Fatal(err)
560 }
561}
562
563func queryRowBytesNotInvalidatedByNext(t *testing.T, rows *Rows, scan func(*sql.Rows) ([]byte, error), want [][]byte) {
564 db, mock, err := New()

Calls 7

NewFunction · 0.85
NextMethod · 0.80
ExpectQueryMethod · 0.65
ExpectationsWereMetMethod · 0.65
CloseMethod · 0.45
WillReturnRowsMethod · 0.45
QueryMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…