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 }