From 1fd67a1762889f40522079181761c2278729448e Mon Sep 17 00:00:00 2001 From: Ahmad Muzakki Date: Sat, 4 Feb 2017 18:09:50 +0700 Subject: [PATCH] - apply stripQuery before assigning query expectation - remove unused function --- expectations_test.go | 17 +++++++++++------ sqlmock.go | 6 +++--- sqlmock_test.go | 18 +++++++++--------- util.go | 11 ----------- 4 files changed, 23 insertions(+), 29 deletions(-) diff --git a/expectations_test.go b/expectations_test.go index f685e43..032f029 100644 --- a/expectations_test.go +++ b/expectations_test.go @@ -104,7 +104,7 @@ func ExampleExpectedExec() { // Output: some error } -func TestBuildQuery(t *testing.T){ +func TestBuildQuery(t *testing.T) { db, mock, _ := New() query := ` SELECT @@ -113,17 +113,22 @@ func TestBuildQuery(t *testing.T){ address, anotherfield FROM user + where + name = 'John' + and + address = 'Jakarta' + ` - + mock.ExpectQuery(query) mock.ExpectExec(query) mock.ExpectPrepare(query) - + db.QueryRow(query) db.Exec(query) db.Prepare(query) - - if err:=mock.ExpectationsWereMet(); err!=nil{ + + if err := mock.ExpectationsWereMet(); err != nil { t.Error(err) } -} \ No newline at end of file +} diff --git a/sqlmock.go b/sqlmock.go index 4c3018b..7ac8076 100644 --- a/sqlmock.go +++ b/sqlmock.go @@ -255,7 +255,7 @@ func (c *sqlmock) Exec(query string, args []driver.Value) (res driver.Result, er func (c *sqlmock) ExpectExec(sqlRegexStr string) *ExpectedExec { e := &ExpectedExec{} - sqlRegexStr = buildQuery(sqlRegexStr) + sqlRegexStr = stripQuery(sqlRegexStr) e.sqlRegex = regexp.MustCompile(sqlRegexStr) c.expected = append(c.expected, e) return e @@ -302,7 +302,7 @@ func (c *sqlmock) Prepare(query string) (driver.Stmt, error) { } func (c *sqlmock) ExpectPrepare(sqlRegexStr string) *ExpectedPrepare { - sqlRegexStr = buildQuery(sqlRegexStr) + sqlRegexStr = stripQuery(sqlRegexStr) e := &ExpectedPrepare{sqlRegex: regexp.MustCompile(sqlRegexStr), mock: c} c.expected = append(c.expected, e) return e @@ -371,7 +371,7 @@ func (c *sqlmock) Query(query string, args []driver.Value) (rw driver.Rows, err func (c *sqlmock) ExpectQuery(sqlRegexStr string) *ExpectedQuery { e := &ExpectedQuery{} - sqlRegexStr = buildQuery(sqlRegexStr) + sqlRegexStr = stripQuery(sqlRegexStr) e.sqlRegex = regexp.MustCompile(sqlRegexStr) c.expected = append(c.expected, e) return e diff --git a/sqlmock_test.go b/sqlmock_test.go index 178a476..fe4924b 100644 --- a/sqlmock_test.go +++ b/sqlmock_test.go @@ -3,17 +3,17 @@ package sqlmock import ( "database/sql" "fmt" + "strconv" "sync" "testing" "time" - "github.com/golang/go/src/pkg/strconv" ) func cancelOrder(db *sql.DB, orderID int) error { tx, _ := db.Begin() _, _ = tx.Query("SELECT * FROM orders {0} FOR UPDATE", orderID) err := tx.Rollback() - if (err != nil) { + if err != nil { return err } return nil @@ -892,8 +892,8 @@ func TestPrepareExec(t *testing.T) { defer db.Close() mock.ExpectBegin() ep := mock.ExpectPrepare("INSERT INTO ORDERS\\(ID, STATUS\\) VALUES \\(\\?, \\?\\)") - for i:=0; i < 3; i++ { - ep.ExpectExec().WillReturnResult(NewResult(1,1)) + for i := 0; i < 3; i++ { + ep.ExpectExec().WillReturnResult(NewResult(1, 1)) } mock.ExpectCommit() tx, _ := db.Begin() @@ -902,8 +902,8 @@ func TestPrepareExec(t *testing.T) { t.Fatal(err) } defer stmt.Close() - for i:=0; i < 3; i++ { - _, err := stmt.Exec(i, "Hello" + strconv.Itoa(i)) + for i := 0; i < 3; i++ { + _, err := stmt.Exec(i, "Hello"+strconv.Itoa(i)) if err != nil { t.Fatal(err) } @@ -938,8 +938,8 @@ func TestPrepareQuery(t *testing.T) { } defer rows.Close() for rows.Next() { - var( - id int + var ( + id int status string ) if rows.Scan(&id, &status); id != 101 || status != "Hello" { @@ -995,4 +995,4 @@ func TestExpectedBeginOrder(t *testing.T) { if err := db.Close(); err == nil { t.Error("an error was expected when calling close, but got none") } -} \ No newline at end of file +} diff --git a/util.go b/util.go index 2f867c2..072e380 100644 --- a/util.go +++ b/util.go @@ -11,14 +11,3 @@ var re = regexp.MustCompile("\\s+") func stripQuery(q string) (s string) { return strings.TrimSpace(re.ReplaceAllString(q, " ")) } - -// mimicking how sql.DB build their queries -func buildQuery(q string)string{ - q = strings.TrimSpace(q) - lines := strings.Split(q,"\n") - var newQuery string - for _,l := range lines{ - newQuery = newQuery +" " +strings.TrimSpace(l) - } - return strings.TrimSpace(newQuery) -} \ No newline at end of file