From c8e01dc2443e2e807166dfcbcc6f5051d6cb0423 Mon Sep 17 00:00:00 2001 From: gedi Date: Fri, 3 Aug 2018 22:46:48 +0300 Subject: [PATCH] custom driver value mocking #131 --- rows_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/rows_test.go b/rows_test.go index a508a0b..e6c96da 100644 --- a/rows_test.go +++ b/rows_test.go @@ -88,6 +88,38 @@ func ExampleRows_closeError() { // Output: got error: close error } +func ExampleRows_customDriverValue() { + db, mock, err := New() + if err != nil { + fmt.Println("failed to open sqlmock database:", err) + } + defer db.Close() + + rows := NewRows([]string{"id", "null_int"}). + AddRow(1, 7). + AddRow(5, sql.NullInt64{Int64: 5, Valid: true}). + AddRow(2, sql.NullInt64{}) + + mock.ExpectQuery("SELECT").WillReturnRows(rows) + + rs, _ := db.Query("SELECT") + defer rs.Close() + + for rs.Next() { + var id int + var num sql.NullInt64 + rs.Scan(&id, &num) + fmt.Println("scanned id:", id, "and null int64:", num) + } + + if rs.Err() != nil { + fmt.Println("got rows error:", rs.Err()) + } + // Output: scanned id: 1 and null int64: {7 true} + // scanned id: 5 and null int64: {5 true} + // scanned id: 2 and null int64: {0 false} +} + func TestAllowsToSetRowsErrors(t *testing.T) { t.Parallel() db, mock, err := New()