84 lines
2.1 KiB
Go
84 lines
2.1 KiB
Go
|
|
package tests
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"github.com/sub0zero/go-sqlbuilder/sqlbuilder"
|
||
|
|
"github.com/sub0zero/go-sqlbuilder/tests/.test_files/dvd_rental/test_sample/model"
|
||
|
|
"github.com/sub0zero/go-sqlbuilder/tests/.test_files/dvd_rental/test_sample/table"
|
||
|
|
"gotest.tools/assert"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestUpdateValues(t *testing.T) {
|
||
|
|
_, err := table.Link.INSERT(table.Link.URL, table.Link.Name, table.Link.Rel).
|
||
|
|
VALUES("http://www.postgresqltutorial.com", "PostgreSQL Tutorial", sqlbuilder.DEFAULT).
|
||
|
|
VALUES("http://www.yahoo.com", "Yahoo", sqlbuilder.DEFAULT).
|
||
|
|
VALUES("http://www.bing.com", "Bing", sqlbuilder.DEFAULT).
|
||
|
|
RETURNING(table.Link.ID).Execute(db)
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
query := table.Link.
|
||
|
|
UPDATE(table.Link.Name, table.Link.URL).
|
||
|
|
SET("Bong", "http://bong.com").
|
||
|
|
WHERE(table.Link.Name.EqL("Bing"))
|
||
|
|
|
||
|
|
queryStr, err := query.String()
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
fmt.Println(queryStr)
|
||
|
|
|
||
|
|
res, err := query.Execute(db)
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
fmt.Println(res)
|
||
|
|
|
||
|
|
links := []model.Link{}
|
||
|
|
|
||
|
|
err = table.Link.SELECT(table.Link.AllColumns).
|
||
|
|
Where(table.Link.Name.EqL("Bong")).
|
||
|
|
Execute(db, &links)
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
//spew.Dump(links)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestUpdateAndReturning(t *testing.T) {
|
||
|
|
_, err := table.Link.INSERT(table.Link.URL, table.Link.Name, table.Link.Rel).
|
||
|
|
VALUES("http://www.postgresqltutorial.com", "PostgreSQL Tutorial", sqlbuilder.DEFAULT).
|
||
|
|
VALUES("http://www.ask.com", "Ask", sqlbuilder.DEFAULT).
|
||
|
|
VALUES("http://www.ask.com", "Ask", sqlbuilder.DEFAULT).
|
||
|
|
VALUES("http://www.yahoo.com", "Yahoo", sqlbuilder.DEFAULT).
|
||
|
|
VALUES("http://www.bing.com", "Bing", sqlbuilder.DEFAULT).
|
||
|
|
RETURNING(table.Link.ID).Execute(db)
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
stmt := table.Link.
|
||
|
|
UPDATE(table.Link.Name, table.Link.URL).
|
||
|
|
SET("DuckDuckGo", "http://www.duckduckgo.com").
|
||
|
|
WHERE(table.Link.Name.EqL("Ask")).
|
||
|
|
RETURNING(table.Link.AllColumns)
|
||
|
|
|
||
|
|
stmtStr, err := stmt.String()
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
fmt.Println(stmtStr)
|
||
|
|
|
||
|
|
links := []model.Link{}
|
||
|
|
|
||
|
|
err = stmt.Query(db, &links)
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
assert.Equal(t, len(links), 2)
|
||
|
|
|
||
|
|
assert.Equal(t, links[0].Name, "DuckDuckGo")
|
||
|
|
|
||
|
|
assert.Equal(t, links[1].Name, "DuckDuckGo")
|
||
|
|
}
|