...

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

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

     1  package sqlmock
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  // used for examples
     9  var mock = &sqlmock{}
    10  
    11  func ExampleNewErrorResult() {
    12  	db, mock, _ := New()
    13  	result := NewErrorResult(fmt.Errorf("some error"))
    14  	mock.ExpectExec("^INSERT (.+)").WillReturnResult(result)
    15  	res, _ := db.Exec("INSERT something")
    16  	_, err := res.LastInsertId()
    17  	fmt.Println(err)
    18  	// Output: some error
    19  }
    20  
    21  func ExampleNewResult() {
    22  	var lastInsertID, affected int64
    23  	result := NewResult(lastInsertID, affected)
    24  	mock.ExpectExec("^INSERT (.+)").WillReturnResult(result)
    25  	fmt.Println(mock.ExpectationsWereMet())
    26  	// Output: there is a remaining expectation which was not matched: ExpectedExec => expecting Exec or ExecContext which:
    27  	//   - matches sql: '^INSERT (.+)'
    28  	//   - is without arguments
    29  	//   - should return Result having:
    30  	//       LastInsertId: 0
    31  	//       RowsAffected: 0
    32  }
    33  
    34  func TestShouldReturnValidSqlDriverResult(t *testing.T) {
    35  	result := NewResult(1, 2)
    36  	id, err := result.LastInsertId()
    37  	if 1 != id {
    38  		t.Errorf("expected last insert id to be 1, but got: %d", id)
    39  	}
    40  	if err != nil {
    41  		t.Errorf("expected no error, but got: %s", err)
    42  	}
    43  	affected, err := result.RowsAffected()
    44  	if 2 != affected {
    45  		t.Errorf("expected affected rows to be 2, but got: %d", affected)
    46  	}
    47  	if err != nil {
    48  		t.Errorf("expected no error, but got: %s", err)
    49  	}
    50  }
    51  
    52  func TestShouldReturnErrorSqlDriverResult(t *testing.T) {
    53  	result := NewErrorResult(fmt.Errorf("some error"))
    54  	_, err := result.LastInsertId()
    55  	if err == nil {
    56  		t.Error("expected error, but got none")
    57  	}
    58  	_, err = result.RowsAffected()
    59  	if err == nil {
    60  		t.Error("expected error, but got none")
    61  	}
    62  }
    63  

View as plain text