...
1 package goqu
2
3 import (
4 "testing"
5
6 "github.com/doug-martin/goqu/v9/exp"
7 "github.com/doug-martin/goqu/v9/internal/sb"
8 "github.com/doug-martin/goqu/v9/sqlgen/mocks"
9 "github.com/stretchr/testify/suite"
10 )
11
12 type dialectTestSuite struct {
13 suite.Suite
14 }
15
16 func (dts *dialectTestSuite) TestDialect() {
17 opts := DefaultDialectOptions()
18 sm := new(mocks.SelectSQLGenerator)
19 d := sqlDialect{dialect: "test", dialectOptions: opts, selectGen: sm}
20
21 dts.Equal("test", d.Dialect())
22 }
23
24 func (dts *dialectTestSuite) TestToSelectSQL() {
25 opts := DefaultDialectOptions()
26 sm := new(mocks.SelectSQLGenerator)
27 d := sqlDialect{dialect: "test", dialectOptions: opts, selectGen: sm}
28
29 b := sb.NewSQLBuilder(true)
30 sc := exp.NewSelectClauses()
31 sm.On("Generate", b, sc).Return(nil).Once()
32
33 d.ToSelectSQL(b, sc)
34 sm.AssertExpectations(dts.T())
35 }
36
37 func (dts *dialectTestSuite) TestToUpdateSQL() {
38 opts := DefaultDialectOptions()
39 um := new(mocks.UpdateSQLGenerator)
40 d := sqlDialect{dialect: "test", dialectOptions: opts, updateGen: um}
41
42 b := sb.NewSQLBuilder(true)
43 uc := exp.NewUpdateClauses()
44 um.On("Generate", b, uc).Return(nil).Once()
45
46 d.ToUpdateSQL(b, uc)
47 um.AssertExpectations(dts.T())
48 }
49
50 func (dts *dialectTestSuite) TestToInsertSQL() {
51 opts := DefaultDialectOptions()
52 im := new(mocks.InsertSQLGenerator)
53 d := sqlDialect{dialect: "test", dialectOptions: opts, insertGen: im}
54
55 b := sb.NewSQLBuilder(true)
56 ic := exp.NewInsertClauses()
57 im.On("Generate", b, ic).Return(nil).Once()
58
59 d.ToInsertSQL(b, ic)
60 im.AssertExpectations(dts.T())
61 }
62
63 func (dts *dialectTestSuite) TestToDeleteSQL() {
64 opts := DefaultDialectOptions()
65 dm := new(mocks.DeleteSQLGenerator)
66 d := sqlDialect{dialect: "test", dialectOptions: opts, deleteGen: dm}
67
68 b := sb.NewSQLBuilder(true)
69 dc := exp.NewDeleteClauses()
70 dm.On("Generate", b, dc).Return(nil).Once()
71
72 d.ToDeleteSQL(b, dc)
73 dm.AssertExpectations(dts.T())
74 }
75
76 func (dts *dialectTestSuite) TestToTruncateSQL() {
77 opts := DefaultDialectOptions()
78 tm := new(mocks.TruncateSQLGenerator)
79 d := sqlDialect{dialect: "test", dialectOptions: opts, truncateGen: tm}
80
81 b := sb.NewSQLBuilder(true)
82 tc := exp.NewTruncateClauses()
83 tm.On("Generate", b, tc).Return(nil).Once()
84
85 d.ToTruncateSQL(b, tc)
86 tm.AssertExpectations(dts.T())
87 }
88
89 func TestSQLDialect(t *testing.T) {
90 suite.Run(t, new(dialectTestSuite))
91 }
92
View as plain text