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 }