jet/tests/update_test.go

84 lines
2.1 KiB
Go
Raw Normal View History

2019-04-14 17:55:10 +02:00
package tests
import (
"fmt"
2019-05-29 14:03:38 +02:00
. "github.com/sub0zero/go-sqlbuilder/sqlbuilder"
2019-04-14 17:55:10 +02:00
"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).
2019-05-29 14:03:38 +02:00
VALUES("http://www.postgresqltutorial.com", "PostgreSQL Tutorial", DEFAULT).
VALUES("http://www.yahoo.com", "Yahoo", DEFAULT).
VALUES("http://www.bing.com", "Bing", DEFAULT).
2019-04-14 17:55:10 +02:00
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").
2019-05-29 14:03:38 +02:00
WHERE(table.Link.Name.EQ(String("Bing")))
2019-04-14 17:55:10 +02:00
queryStr, args, err := query.Sql()
2019-04-14 17:55:10 +02:00
assert.NilError(t, err)
assert.Equal(t, len(args), 3)
2019-04-14 17:55:10 +02:00
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).
2019-05-29 14:03:38 +02:00
WHERE(table.Link.Name.EQ(String("Bong"))).
2019-04-20 19:49:29 +02:00
Query(db, &links)
2019-04-14 17:55:10 +02:00
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).
2019-05-29 14:03:38 +02:00
VALUES("http://www.postgresqltutorial.com", "PostgreSQL Tutorial", DEFAULT).
VALUES("http://www.ask.com", "Ask", DEFAULT).
VALUES("http://www.ask.com", "Ask", DEFAULT).
VALUES("http://www.yahoo.com", "Yahoo", DEFAULT).
VALUES("http://www.bing.com", "Bing", DEFAULT).
2019-04-14 17:55:10 +02:00
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").
2019-05-29 14:03:38 +02:00
WHERE(table.Link.Name.EQ(String("Ask"))).
2019-04-14 17:55:10 +02:00
RETURNING(table.Link.AllColumns)
stmtStr, args, err := stmt.Sql()
2019-04-14 17:55:10 +02:00
assert.NilError(t, err)
assert.Equal(t, len(args), 3)
2019-04-14 17:55:10 +02:00
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")
}