github.com/RevenueMonster/sqlike@v1.0.6/sqlike/actions/actions_test.go (about)

     1  package actions
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/RevenueMonster/sqlike/sql/expr"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestActions(t *testing.T) {
    11  	require.Equal(t, new(FindOneActions), FindOne())
    12  	require.Equal(t, new(FindActions), Find())
    13  	require.Equal(t, new(PaginateActions), Paginate())
    14  	require.Equal(t, new(UpdateOneActions), UpdateOne())
    15  	require.Equal(t, new(UpdateActions), Update())
    16  	require.Equal(t, new(DeleteOneActions), DeleteOne())
    17  	require.Equal(t, new(DeleteActions), Delete())
    18  
    19  	foAction := new(FindOneActions)
    20  	foAction.OrderBy(expr.Asc("Aa"), expr.Desc("Bb"), expr.Desc("Cc"))
    21  	require.ElementsMatch(t, []interface{}{
    22  		expr.Asc("Aa"),
    23  		expr.Desc("Bb"),
    24  		expr.Desc("Cc"),
    25  	}, foAction.Sorts)
    26  
    27  	dlAction := new(DeleteActions)
    28  	dlAction.Limit(12)
    29  	require.Equal(t, uint(12), dlAction.Record)
    30  	dlAction.OrderBy(expr.Asc("A"), expr.Desc("B"))
    31  	require.ElementsMatch(t, []interface{}{
    32  		expr.Asc("A"),
    33  		expr.Desc("B"),
    34  	}, dlAction.Sorts)
    35  }