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

     1  package options
     2  
     3  import (
     4  	"database/sql"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestTransactionOptions(t *testing.T) {
    12  	opt := Transaction()
    13  
    14  	t.Run("SetTimeOut", func(it *testing.T) {
    15  		timeout := time.Minute * 30
    16  		opt.SetTimeOut(timeout)
    17  		require.Equal(it, timeout, opt.Duration)
    18  
    19  		timeout = time.Second * 15
    20  		opt.SetTimeOut(timeout)
    21  		require.Equal(it, timeout, opt.Duration)
    22  	})
    23  
    24  	t.Run("SetReadOnly", func(it *testing.T) {
    25  		opt.SetReadOnly(true)
    26  		require.True(it, opt.ReadOnly)
    27  
    28  		opt.SetReadOnly(false)
    29  		require.False(it, opt.ReadOnly)
    30  	})
    31  
    32  	t.Run("SetReadOnly", func(it *testing.T) {
    33  
    34  		// LevelDefault         = sql.LevelDefault
    35  		// LevelReadUncommitted = sql.LevelReadUncommitted
    36  		// LevelReadCommitted   = sql.LevelReadCommitted
    37  		// LevelWriteCommitted  = sql.LevelWriteCommitted
    38  		// LevelRepeatableRead  = sql.LevelRepeatableRead
    39  		// LevelSnapshot        = sql.LevelSnapshot
    40  		// LevelSerializable    = sql.LevelSerializable
    41  		// LevelLinearizable    = sql.LevelLinearizable
    42  		opt.SetIsolationLevel(sql.LevelDefault)
    43  		require.Equal(it, sql.LevelDefault, opt.IsolationLevel)
    44  
    45  		opt.SetIsolationLevel(sql.LevelReadUncommitted)
    46  		require.Equal(it, sql.LevelReadUncommitted, opt.IsolationLevel)
    47  
    48  		opt.SetIsolationLevel(sql.LevelReadCommitted)
    49  		require.Equal(it, sql.LevelReadCommitted, opt.IsolationLevel)
    50  
    51  		opt.SetIsolationLevel(sql.LevelWriteCommitted)
    52  		require.Equal(it, sql.LevelWriteCommitted, opt.IsolationLevel)
    53  
    54  		opt.SetIsolationLevel(sql.LevelRepeatableRead)
    55  		require.Equal(it, sql.LevelRepeatableRead, opt.IsolationLevel)
    56  
    57  		opt.SetIsolationLevel(sql.LevelSnapshot)
    58  		require.Equal(it, sql.LevelSnapshot, opt.IsolationLevel)
    59  
    60  		opt.SetIsolationLevel(sql.LevelSerializable)
    61  		require.Equal(it, sql.LevelSerializable, opt.IsolationLevel)
    62  
    63  		opt.SetIsolationLevel(sql.LevelLinearizable)
    64  		require.Equal(it, sql.LevelLinearizable, opt.IsolationLevel)
    65  	})
    66  }