github.com/RevenueMonster/sqlike@v1.0.6/sqlike/options/find_test.go (about)

     1  package options
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestFind(t *testing.T) {
    10  	opt := Find()
    11  
    12  	t.Run("SetDebug", func(it *testing.T) {
    13  		{
    14  			opt.SetDebug(true)
    15  			require.True(it, opt.Debug)
    16  		}
    17  
    18  		{
    19  			opt.SetDebug(false)
    20  			require.False(it, opt.Debug)
    21  		}
    22  	})
    23  
    24  	t.Run("SetNoLimit", func(it *testing.T) {
    25  		{
    26  			opt.SetNoLimit(true)
    27  			require.True(it, opt.NoLimit)
    28  		}
    29  
    30  		{
    31  			opt.SetNoLimit(false)
    32  			require.False(it, opt.NoLimit)
    33  		}
    34  	})
    35  
    36  	t.Run("SetOmitFields", func(it *testing.T) {
    37  		opt.SetOmitFields("A", "_underscore", "cdf")
    38  		require.ElementsMatch(it, []string{
    39  			"A", "_underscore", "cdf",
    40  		}, opt.OmitFields)
    41  	})
    42  
    43  	t.Run("SetLockMode", func(it *testing.T) {
    44  		{
    45  			opt.SetLockMode(LockForRead)
    46  			require.Equal(it, LockForRead, opt.LockMode)
    47  		}
    48  
    49  		{
    50  			opt.SetLockMode(LockForUpdate)
    51  			require.Equal(it, LockForUpdate, opt.LockMode)
    52  		}
    53  
    54  		{
    55  			// default lock
    56  			ot := FindOne()
    57  			require.Equal(it, LockMode(0), ot.LockMode)
    58  		}
    59  	})
    60  }