From 22426c8cad9c9f64f75495ba147c6d5461daec3e Mon Sep 17 00:00:00 2001 From: zer0sub Date: Fri, 3 May 2019 11:59:18 +0200 Subject: [PATCH] Integration test for UNION statement. --- tests/select_test.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/select_test.go b/tests/select_test.go index 77b0318..41aeadf 100644 --- a/tests/select_test.go +++ b/tests/select_test.go @@ -592,6 +592,45 @@ func TestSelectTimeColumns(t *testing.T) { }) } +func TestUnion(t *testing.T) { + query := sqlbuilder.UNION( + Payment. + SELECT(Payment.PaymentID.As("payment.payment_id"), Payment.Amount). + WHERE(Payment.Amount.LtEqL(100)), + Payment. + SELECT(Payment.PaymentID, Payment.Amount). + WHERE(Payment.Amount.GtEqL(200)), + ). + ORDER_BY(sqlbuilder.RefColumn("payment.payment_id").Asc(), Payment.Amount.Desc()). + LIMIT(10).OFFSET(20) + + queryStr, args, err := query.Sql() + + assert.NilError(t, err) + + fmt.Println(queryStr) + fmt.Println(args) + + dest := []model.Payment{} + + err = query.Query(db, &dest) + + assert.NilError(t, err) + assert.Equal(t, len(dest), 10) + assert.DeepEqual(t, dest[0], model.Payment{ + PaymentID: 17523, + Amount: 4.99, + }) + assert.DeepEqual(t, dest[1], model.Payment{ + PaymentID: 17524, + Amount: 0.99, + }) + assert.DeepEqual(t, dest[9], model.Payment{ + PaymentID: 17532, + Amount: 8.99, + }) +} + func int16Ptr(i int16) *int16 { return &i }