initial commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package simql
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alecthomas/assert/v2"
|
||||
)
|
||||
|
||||
func TestSelect(t *testing.T) {
|
||||
type TestCase struct {
|
||||
In *SelectQuery
|
||||
Args []any
|
||||
String string
|
||||
}
|
||||
|
||||
testCases := []TestCase{
|
||||
{
|
||||
In: Select("customer"),
|
||||
String: "select * from customer",
|
||||
},
|
||||
{
|
||||
In: Select("customer as c"),
|
||||
String: "select * from customer as c",
|
||||
},
|
||||
{
|
||||
In: Select("customer as c").Columns("c.id", "c.name"),
|
||||
String: "select c.id, c.name from customer as c",
|
||||
},
|
||||
{
|
||||
In: Select("customer as c").InnerJoin("invoices as i on i.customer_id = c.id").Columns("c.name", "i.date"),
|
||||
String: "select c.name, i.date from customer as c inner join invoices as i on i.customer_id = c.id",
|
||||
},
|
||||
{
|
||||
In: Select("customer").Where("id = ?", 1234),
|
||||
Args: []any{1234},
|
||||
String: "select * from customer where id = ?",
|
||||
},
|
||||
{
|
||||
In: Select("customer").Where("id = ?", 1234).Where("and amount > ?", 1000),
|
||||
Args: []any{1234, 1000},
|
||||
String: "select * from customer where id = ? and amount > ?",
|
||||
},
|
||||
{
|
||||
In: Select("customer").Where("id = ?", 1234).Columns("name", "email"),
|
||||
Args: []any{1234},
|
||||
String: "select name, email from customer where id = ?",
|
||||
},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
t.Run(testCase.String, func(t *testing.T) {
|
||||
assert.Equal(t, testCase.Args, testCase.In.Args(), "collected arguments incorrectly")
|
||||
assert.Equal(t, testCase.String, testCase.In.String(), "stringified incorrectly")
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user