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  }