...

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

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

     1  // +build go1.9
     2  
     3  package sqlmock
     4  
     5  import (
     6  	"context"
     7  	"testing"
     8  )
     9  
    10  func TestCustomValueConverterExec(t *testing.T) {
    11  	db, mock, _ := New(ValueConverterOption(CustomConverter{}))
    12  	expectedQuery := "INSERT INTO tags \\(name,email,age,hobbies\\) VALUES \\(\\?,\\?,\\?,\\?\\)"
    13  	query := "INSERT INTO tags (name,email,age,hobbies) VALUES (?,?,?,?)"
    14  	name := "John"
    15  	email := "j@jj.j"
    16  	age := 12
    17  	hobbies := []string{"soccer", "netflix"}
    18  	mock.ExpectBegin()
    19  	mock.ExpectPrepare(expectedQuery)
    20  	mock.ExpectExec(expectedQuery).WithArgs(name, email, age, hobbies).WillReturnResult(NewResult(1, 1))
    21  	mock.ExpectCommit()
    22  
    23  	ctx := context.Background()
    24  	tx, e := db.BeginTx(ctx, nil)
    25  	if e != nil {
    26  		t.Error(e)
    27  		return
    28  	}
    29  	stmt, e := db.PrepareContext(ctx, query)
    30  	if e != nil {
    31  		t.Error(e)
    32  		return
    33  	}
    34  	_, e = stmt.Exec(name, email, age, hobbies)
    35  	if e != nil {
    36  		t.Error(e)
    37  		return
    38  	}
    39  	tx.Commit()
    40  	if err := mock.ExpectationsWereMet(); err != nil {
    41  		t.Error(err)
    42  	}
    43  }
    44  

View as plain text