github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSql/TransactionCallback_test.go (about)

     1  package kmgSql
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/bronze1man/kmg/kmgTest"
     7  )
     8  
     9  func TestMustTransactionCallback(ot *testing.T) {
    10  	setTestSqlTable()
    11  	MustTransactionCallback(func(tx Tx) {
    12  		tx.Insert("kmgSql_test_table", map[string]string{
    13  			"Info": "Hello123",
    14  		})
    15  	})
    16  	all := MustGetAllInTable("kmgSql_test_table")
    17  	kmgTest.Equal(len(all), 3)
    18  
    19  	out := kmgTest.AssertPanic(func() {
    20  		MustTransactionCallback(func(tx Tx) {
    21  			tx.Insert("kmgSql_test_table", map[string]string{
    22  				"Info": "Hello123",
    23  			})
    24  			panic("abc")
    25  		})
    26  	})
    27  	kmgTest.Equal(out, "abc")
    28  	all = MustGetAllInTable("kmgSql_test_table")
    29  	kmgTest.Equal(len(all), 3)
    30  
    31  	kmgTest.AssertPanic(func() {
    32  		MustTransactionCallback(func(tx Tx) {
    33  			_, err := tx.Insert("kmgSql_test_table", map[string]string{
    34  				"Info": "Hello123",
    35  			})
    36  			if err != nil {
    37  				panic(err)
    38  			}
    39  			_, err = tx.Insert("kmgSql_test_table", map[string]string{
    40  				"Info":                 "Hello123",
    41  				"InfoWhateverNotExist": "abc",
    42  			})
    43  			if err != nil {
    44  				panic(err)
    45  			}
    46  		})
    47  	})
    48  	all = MustGetAllInTable("kmgSql_test_table")
    49  	kmgTest.Equal(len(all), 3)
    50  }