...

Source file src/github.com/DATA-DOG/go-sqlmock/sqlmock_go19_test.go

Documentation: github.com/DATA-DOG/go-sqlmock

     1  // +build go1.9
     2  
     3  package sqlmock
     4  
     5  import (
     6  	"database/sql"
     7  	"database/sql/driver"
     8  	"errors"
     9  	"testing"
    10  )
    11  
    12  func TestStatementTX(t *testing.T) {
    13  	t.Parallel()
    14  	db, mock, err := New()
    15  	if err != nil {
    16  		t.Errorf("an error '%s' was not expected when opening a stub database connection", err)
    17  	}
    18  	defer db.Close()
    19  
    20  	prep := mock.ExpectPrepare("SELECT")
    21  	mock.ExpectBegin()
    22  
    23  	prep.ExpectQuery().WithArgs(1).WillReturnError(errors.New("fast fail"))
    24  
    25  	stmt, err := db.Prepare("SELECT title, body FROM articles WHERE id = ?")
    26  	if err != nil {
    27  		t.Fatalf("unexpected error on prepare: %v", err)
    28  	}
    29  
    30  	tx, err := db.Begin()
    31  	if err != nil {
    32  		t.Fatalf("unexpected error on begin: %v", err)
    33  	}
    34  
    35  	// upgrade connection for statement
    36  	txStmt := tx.Stmt(stmt)
    37  	_, err = txStmt.Query(1)
    38  	if err == nil || err.Error() != "fast fail" {
    39  		t.Fatalf("unexpected result: %v", err)
    40  	}
    41  }
    42  
    43  func Test_sqlmock_CheckNamedValue(t *testing.T) {
    44  	db, mock, err := New()
    45  	if err != nil {
    46  		t.Errorf("an error '%s' was not expected when opening a stub database connection", err)
    47  	}
    48  	defer db.Close()
    49  	tests := []struct {
    50  		name    string
    51  		arg     *driver.NamedValue
    52  		wantErr bool
    53  	}{
    54  		{
    55  			arg:     &driver.NamedValue{Name: "test", Value: "test"},
    56  			wantErr: false,
    57  		},
    58  		{
    59  			arg:     &driver.NamedValue{Name: "test", Value: sql.Out{}},
    60  			wantErr: false,
    61  		},
    62  	}
    63  	for _, tt := range tests {
    64  		t.Run(tt.name, func(t *testing.T) {
    65  			if err := mock.(*sqlmock).CheckNamedValue(tt.arg); (err != nil) != tt.wantErr {
    66  				t.Errorf("CheckNamedValue() error = %v, wantErr %v", err, tt.wantErr)
    67  			}
    68  		})
    69  	}
    70  }
    71  

View as plain text