mirror of
https://github.com/kataras/iris.git
synced 2025-12-17 18:07:01 +00:00
add a new x/sqlx sub-package and example
This commit is contained in:
75
x/sqlx/sqlx_test.go
Normal file
75
x/sqlx/sqlx_test.go
Normal file
@@ -0,0 +1,75 @@
|
||||
package sqlx
|
||||
|
||||
/*
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
sqlmock "github.com/DATA-DOG/go-sqlmock"
|
||||
)
|
||||
|
||||
type food struct {
|
||||
ID string
|
||||
Name string
|
||||
Presenter bool `db:"-"`
|
||||
}
|
||||
|
||||
func TestTableBind(t *testing.T) {
|
||||
Register("foods", food{})
|
||||
|
||||
db, mock, err := sqlmock.New()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
mock.ExpectQuery("SELECT .* FROM foods WHERE id = ?").
|
||||
WithArgs("42").
|
||||
WillReturnRows(sqlmock.NewRows([]string{"id", "name"}).
|
||||
AddRow("42", "banana").
|
||||
AddRow("43", "broccoli"))
|
||||
|
||||
rows, err := db.Query("SELECT .* FROM foods WHERE id = ? LIMIT 1", "42")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
var f food
|
||||
err = Bind(&f, rows)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectedSingle := food{"42", "banana", false}
|
||||
if !reflect.DeepEqual(f, expectedSingle) {
|
||||
t.Fatalf("expected value: %#+v but got: %#+v", expectedSingle, f)
|
||||
}
|
||||
|
||||
mock.ExpectQuery("SELECT .* FROM foods").
|
||||
WillReturnRows(sqlmock.NewRows([]string{"id", "name"}).
|
||||
AddRow("42", "banana").
|
||||
AddRow("43", "broccoli").
|
||||
AddRow("44", "chicken"))
|
||||
rows, err = db.Query("SELECT .* FROM foods")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
var foods []food
|
||||
err = Bind(&foods, rows)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectedMany := []food{
|
||||
{"42", "banana", false},
|
||||
{"43", "broccoli", false},
|
||||
{"44", "chicken", false},
|
||||
}
|
||||
|
||||
for i := range foods {
|
||||
if !reflect.DeepEqual(foods[i], expectedMany[i]) {
|
||||
t.Fatalf("[%d] expected: %#+v but got: %#+v", i, expectedMany[i], foods[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user