...

Source file src/github.com/doug-martin/goqu/v9/exp/delete_clauses_test.go

Documentation: github.com/doug-martin/goqu/v9/exp

     1  package exp_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/doug-martin/goqu/v9/exp"
     7  	"github.com/stretchr/testify/suite"
     8  )
     9  
    10  type deleteClausesSuite struct {
    11  	suite.Suite
    12  }
    13  
    14  func TestDeleteClausesSuite(t *testing.T) {
    15  	suite.Run(t, new(deleteClausesSuite))
    16  }
    17  
    18  func (dcs *deleteClausesSuite) TestHasFrom() {
    19  	c := exp.NewDeleteClauses()
    20  	c2 := c.SetFrom(exp.NewIdentifierExpression("", "test", ""))
    21  
    22  	dcs.False(c.HasFrom())
    23  
    24  	dcs.True(c2.HasFrom())
    25  }
    26  
    27  func (dcs *deleteClausesSuite) TestFrom() {
    28  	c := exp.NewDeleteClauses()
    29  	ti := exp.NewIdentifierExpression("", "a", "")
    30  	c2 := c.SetFrom(ti)
    31  
    32  	dcs.Nil(c.From())
    33  
    34  	dcs.Equal(ti, c2.From())
    35  }
    36  
    37  func (dcs *deleteClausesSuite) TestSetFrom() {
    38  	c := exp.NewDeleteClauses()
    39  	ti := exp.NewIdentifierExpression("", "a", "")
    40  	c2 := c.SetFrom(ti)
    41  
    42  	dcs.Nil(c.From())
    43  
    44  	dcs.Equal(ti, c2.From())
    45  }
    46  
    47  func (dcs *deleteClausesSuite) TestWhere() {
    48  	w := exp.Ex{"a": 1}
    49  
    50  	c := exp.NewDeleteClauses()
    51  	c2 := c.WhereAppend(w)
    52  
    53  	dcs.Nil(c.Where())
    54  
    55  	dcs.Equal(exp.NewExpressionList(exp.AndType, w), c2.Where())
    56  }
    57  
    58  func (dcs *deleteClausesSuite) TestClearWhere() {
    59  	w := exp.Ex{"a": 1}
    60  
    61  	c := exp.NewDeleteClauses().WhereAppend(w)
    62  	c2 := c.ClearWhere()
    63  
    64  	dcs.Equal(exp.NewExpressionList(exp.AndType, w), c.Where())
    65  
    66  	dcs.Nil(c2.Where())
    67  }
    68  
    69  func (dcs *deleteClausesSuite) TestWhereAppend() {
    70  	w := exp.Ex{"a": 1}
    71  	w2 := exp.Ex{"b": 2}
    72  
    73  	c := exp.NewDeleteClauses()
    74  	c2 := c.WhereAppend(w)
    75  
    76  	c3 := c.WhereAppend(w).WhereAppend(w2)
    77  
    78  	c4 := c.WhereAppend(w, w2)
    79  
    80  	dcs.Nil(c.Where())
    81  
    82  	dcs.Equal(exp.NewExpressionList(exp.AndType, w), c2.Where())
    83  	dcs.Equal(exp.NewExpressionList(exp.AndType, w).Append(w2), c3.Where())
    84  	dcs.Equal(exp.NewExpressionList(exp.AndType, w, w2), c4.Where())
    85  }
    86  
    87  func (dcs *deleteClausesSuite) TestOrder() {
    88  	oe := exp.NewIdentifierExpression("", "", "a").Desc()
    89  
    90  	c := exp.NewDeleteClauses()
    91  	c2 := c.SetOrder(oe)
    92  
    93  	dcs.Nil(c.Order())
    94  
    95  	dcs.Equal(exp.NewColumnListExpression(oe), c2.Order())
    96  }
    97  
    98  func (dcs *deleteClausesSuite) TestHasOrder() {
    99  	oe := exp.NewIdentifierExpression("", "", "a").Desc()
   100  
   101  	c := exp.NewDeleteClauses()
   102  	c2 := c.SetOrder(oe)
   103  
   104  	dcs.False(c.HasOrder())
   105  
   106  	dcs.True(c2.HasOrder())
   107  }
   108  
   109  func (dcs *deleteClausesSuite) TestClearOrder() {
   110  	oe := exp.NewIdentifierExpression("", "", "a").Desc()
   111  
   112  	c := exp.NewDeleteClauses().SetOrder(oe)
   113  	c2 := c.ClearOrder()
   114  
   115  	dcs.Equal(exp.NewColumnListExpression(oe), c.Order())
   116  
   117  	dcs.Nil(c2.Order())
   118  }
   119  
   120  func (dcs *deleteClausesSuite) TestSetOrder() {
   121  	oe := exp.NewIdentifierExpression("", "", "a").Desc()
   122  	oe2 := exp.NewIdentifierExpression("", "", "b").Desc()
   123  
   124  	c := exp.NewDeleteClauses().SetOrder(oe)
   125  	c2 := c.SetOrder(oe2)
   126  
   127  	dcs.Equal(exp.NewColumnListExpression(oe), c.Order())
   128  
   129  	dcs.Equal(exp.NewColumnListExpression(oe2), c2.Order())
   130  }
   131  
   132  func (dcs *deleteClausesSuite) TestOrderAppend() {
   133  	oe := exp.NewIdentifierExpression("", "", "a").Desc()
   134  	oe2 := exp.NewIdentifierExpression("", "", "b").Desc()
   135  
   136  	c := exp.NewDeleteClauses().SetOrder(oe)
   137  	c2 := c.OrderAppend(oe2)
   138  
   139  	dcs.Equal(exp.NewColumnListExpression(oe), c.Order())
   140  
   141  	dcs.Equal(exp.NewColumnListExpression(oe, oe2), c2.Order())
   142  }
   143  
   144  func (dcs *deleteClausesSuite) TestOrderPrepend() {
   145  	oe := exp.NewIdentifierExpression("", "", "a").Desc()
   146  	oe2 := exp.NewIdentifierExpression("", "", "b").Desc()
   147  
   148  	c := exp.NewDeleteClauses().SetOrder(oe)
   149  	c2 := c.OrderPrepend(oe2)
   150  
   151  	dcs.Equal(exp.NewColumnListExpression(oe), c.Order())
   152  
   153  	dcs.Equal(exp.NewColumnListExpression(oe2, oe), c2.Order())
   154  }
   155  
   156  func (dcs *deleteClausesSuite) TestLimit() {
   157  	l := 1
   158  
   159  	c := exp.NewDeleteClauses()
   160  	c2 := c.SetLimit(l)
   161  
   162  	dcs.Nil(c.Limit())
   163  
   164  	dcs.Equal(l, c2.Limit())
   165  }
   166  
   167  func (dcs *deleteClausesSuite) TestHasLimit() {
   168  	l := 1
   169  
   170  	c := exp.NewDeleteClauses()
   171  	c2 := c.SetLimit(l)
   172  
   173  	dcs.False(c.HasLimit())
   174  
   175  	dcs.True(c2.HasLimit())
   176  }
   177  
   178  func (dcs *deleteClausesSuite) TestCLearLimit() {
   179  	l := 1
   180  
   181  	c := exp.NewDeleteClauses().SetLimit(l)
   182  	c2 := c.ClearLimit()
   183  
   184  	dcs.True(c.HasLimit())
   185  
   186  	dcs.False(c2.HasLimit())
   187  }
   188  
   189  func (dcs *deleteClausesSuite) TestSetLimit() {
   190  	l := 1
   191  	l2 := 2
   192  
   193  	c := exp.NewDeleteClauses().SetLimit(l)
   194  	c2 := c.SetLimit(2)
   195  
   196  	dcs.Equal(l, c.Limit())
   197  
   198  	dcs.Equal(l2, c2.Limit())
   199  }
   200  
   201  func (dcs *deleteClausesSuite) TestCommonTables() {
   202  	cte := exp.NewCommonTableExpression(true, "test", newTestAppendableExpression(`SELECT * FROM "foo"`, []interface{}{}))
   203  
   204  	c := exp.NewDeleteClauses()
   205  	c2 := c.CommonTablesAppend(cte)
   206  
   207  	dcs.Nil(c.CommonTables())
   208  
   209  	dcs.Equal([]exp.CommonTableExpression{cte}, c2.CommonTables())
   210  }
   211  
   212  func (dcs *deleteClausesSuite) TestAddCommonTablesAppend() {
   213  	cte := exp.NewCommonTableExpression(true, "test", testSQLExpression("test_cte"))
   214  	cte2 := exp.NewCommonTableExpression(true, "test", testSQLExpression("test_cte2"))
   215  
   216  	c := exp.NewDeleteClauses().CommonTablesAppend(cte)
   217  	c2 := c.CommonTablesAppend(cte2)
   218  
   219  	dcs.Equal([]exp.CommonTableExpression{cte}, c.CommonTables())
   220  
   221  	dcs.Equal([]exp.CommonTableExpression{cte, cte2}, c2.CommonTables())
   222  }
   223  
   224  func (dcs *deleteClausesSuite) TestReturning() {
   225  	cl := exp.NewColumnListExpression(exp.NewIdentifierExpression("", "", "col"))
   226  
   227  	c := exp.NewDeleteClauses()
   228  	c2 := c.SetReturning(cl)
   229  
   230  	dcs.Nil(c.Returning())
   231  
   232  	dcs.Equal(cl, c2.Returning())
   233  }
   234  
   235  func (dcs *deleteClausesSuite) TestHasReturning() {
   236  	cl := exp.NewColumnListExpression(exp.NewIdentifierExpression("", "", "col"))
   237  
   238  	c := exp.NewDeleteClauses()
   239  	c2 := c.SetReturning(cl)
   240  
   241  	dcs.False(c.HasReturning())
   242  
   243  	dcs.True(c2.HasReturning())
   244  }
   245  
   246  func (dcs *deleteClausesSuite) TestSetReturning() {
   247  	cl := exp.NewColumnListExpression(exp.NewIdentifierExpression("", "", "col"))
   248  	cl2 := exp.NewColumnListExpression(exp.NewIdentifierExpression("", "", "col2"))
   249  
   250  	c := exp.NewDeleteClauses().SetReturning(cl)
   251  	c2 := c.SetReturning(cl2)
   252  
   253  	dcs.Equal(cl, c.Returning())
   254  
   255  	dcs.Equal(cl2, c2.Returning())
   256  }
   257  

View as plain text