github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSql/Sync_test.go (about) 1 package kmgSql_test 2 3 import ( 4 "fmt" 5 "strings" 6 "testing" 7 8 "github.com/bronze1man/kmg/kmgSql" 9 . "github.com/bronze1man/kmg/kmgTest" 10 ) 11 12 var testTableConfig = kmgSql.Table{ 13 Name: "testTable", 14 FieldList: map[string]kmgSql.DbType{ 15 "Id": kmgSql.DbTypeInt, 16 "Name": kmgSql.DbTypeString, 17 }, 18 PrimaryKey: "Id", 19 UniqueKey: [][]string{ 20 []string{"Id", "Name"}, 21 }, 22 Null: []string{"Name"}, 23 } 24 25 var testBadTableConfig = kmgSql.Table{ 26 Name: "testTable", 27 FieldList: map[string]kmgSql.DbType{ 28 "Id": kmgSql.DbTypeInt, 29 "Name": kmgSql.DbTypeString, 30 }, 31 } 32 33 func TestIsTableExist(t *testing.T) { 34 setTest() 35 Ok(!kmgSql.MustIsTableExist("testTable")) 36 } 37 38 func TestCreateTable(t *testing.T) { 39 setTest() 40 kmgSql.MustCreateTable(testTableConfig) 41 ret := kmgSql.MustQueryOne("SHOW CREATE TABLE testTable") 42 Ok(strings.Contains(fmt.Sprint(ret), "Id")) 43 Ok(strings.Contains(fmt.Sprint(ret), "Name")) 44 Ok(kmgSql.MustIsTableExist("testTable")) 45 } 46 47 func TestModifyTable(t *testing.T) { 48 setTest() 49 kmgSql.MustCreateTable(testTableConfig) 50 newTestTableConfig := kmgSql.Table{ 51 Name: "testTable", 52 FieldList: map[string]kmgSql.DbType{ 53 "Id": kmgSql.DbTypeInt, 54 "Name": kmgSql.DbTypeLongString, 55 "Age": kmgSql.DbTypeInt, 56 }, 57 PrimaryKey: "Id", 58 UniqueKey: [][]string{ 59 []string{"Id", "Name"}, 60 }, 61 Null: []string{"Name"}, 62 } 63 kmgSql.MustModifyTable(newTestTableConfig) 64 ret := kmgSql.MustQueryOne("SHOW CREATE TABLE testTable") 65 Ok(strings.Contains(fmt.Sprint(ret), "Id")) 66 Ok(strings.Contains(fmt.Sprint(ret), "Name")) 67 Ok(strings.Contains(fmt.Sprint(ret), "Age")) 68 Ok(kmgSql.MustIsTableExist("testTable")) 69 } 70 71 func TestSyncTable(t *testing.T) { 72 setTest() 73 kmgSql.MustSyncTable(testTableConfig) 74 Ok(kmgSql.MustIsTableExist("testTable")) 75 } 76 77 func TestSyncTableBad(t *testing.T) { 78 setTest() 79 kmgSql.MustSyncTable(testBadTableConfig) 80 Ok(kmgSql.MustIsTableExist("testTable")) 81 } 82 83 func setTest() { 84 kmgSql.Exec("DROP TABLE IF EXISTS `testTable`") 85 }