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

     1  package kmgSql
     2  
     3  import (
     4  	"testing"
     5  
     6  	. "github.com/bronze1man/kmg/kmgTest"
     7  )
     8  
     9  func TestConnectToDb(t *testing.T) {
    10  	db := GetDb()
    11  	err := db.Ping()
    12  	Equal(err, nil)
    13  }
    14  
    15  func TestExec(t *testing.T) {
    16  	setTestSqlTable()
    17  	_, err := Exec("DELETE FROM `kmgSql_test_table` WHERE Id=? AND Info=?", "2", "World")
    18  	Equal(err, nil)
    19  }
    20  
    21  func TestQuery(t *testing.T) {
    22  	setTestSqlTable()
    23  	row, err := Query("select * from kmgSql_test_table")
    24  	Equal(err, nil)
    25  	Equal(len(row), 2)
    26  	setTestSqlTable()
    27  	rowA, err := Query("select * from kmgSql_test_table limit 1")
    28  	rowB, err := QueryOne("select * from kmgSql_test_table")
    29  	Equal(rowA[0]["Id"], rowB["Id"])
    30  	Equal(rowA[0]["Info"], rowB["Info"])
    31  
    32  	_, err = Query("SELECT * from kmgSql_test_table WHERE (Id=?) LIMIT 0,10", "2")
    33  	Equal(err, nil)
    34  
    35  }
    36  
    37  func TestQuestError(t *testing.T) {
    38  	_, err := Exec("DROP TABLE IF EXISTS `kmgSql_test_table`")
    39  	Equal(err, nil)
    40  	_, err = Query("show table status where name=?;", "kmgSql_test_table")
    41  	Ok(err == nil)
    42  }
    43  
    44  func TestInsert(t *testing.T) {
    45  	setTestSqlTable()
    46  	id, err := Insert("kmgSql_test_table", map[string]string{
    47  		"Id":   "3",
    48  		"Info": "Tom",
    49  	})
    50  	Equal(err, nil)
    51  	Equal(id, 3)
    52  	one, err := QueryOne("select * from kmgSql_test_table where Id=?", "3")
    53  	Equal(one["Info"], "Tom")
    54  	Equal(err, nil)
    55  }
    56  
    57  func TestUpdateById(t *testing.T) {
    58  	setTestSqlTable()
    59  	err := UpdateById("kmgSql_test_table", "Id", map[string]string{
    60  		"Id":   "1",
    61  		"Info": "Ok",
    62  	})
    63  	Equal(err, nil)
    64  	one, err := QueryOne("select * from kmgSql_test_table where Id=?", "1")
    65  	Equal(one["Info"], "Ok")
    66  	Equal(err, nil)
    67  }
    68  
    69  func TestReplaceById(t *testing.T) {
    70  	setTestSqlTable()
    71  	row := map[string]string{
    72  		"Id":   "1",
    73  		"Info": "Sky",
    74  	}
    75  	id, err := ReplaceById("kmgSql_test_table", "Id", row)
    76  	Equal(err, nil)
    77  	Equal(id, 1)
    78  	setTestSqlTable()
    79  	row = map[string]string{
    80  		"Info": "Sky",
    81  	}
    82  	id, err = ReplaceById("kmgSql_test_table", "Id", row)
    83  	Equal(err, nil)
    84  	Equal(id, 3)
    85  	one, err := GetOneWhere("kmgSql_test_table", "Id", "3")
    86  	Equal(one["Info"], "Sky")
    87  	Equal(err, nil)
    88  	setTestSqlTable()
    89  	row = map[string]string{
    90  		"Id":   "10",
    91  		"Info": "Sky",
    92  	}
    93  	id, err = ReplaceById("kmgSql_test_table", "Id", row)
    94  	Equal(err, nil)
    95  	Equal(id, 10)
    96  	one, err = GetOneWhere("kmgSql_test_table", "Id", "10")
    97  	Equal(one["Info"], "Sky")
    98  	Equal(err, nil)
    99  }
   100  
   101  func TestGetOneWhere(t *testing.T) {
   102  	setTestSqlTable()
   103  	one, err := GetOneWhere("kmgSql_test_table", "Id", "1")
   104  	Equal(err, nil)
   105  	Equal(one["Info"], "Hello")
   106  
   107  	one, err = GetOneWhere("kmgSql_test_table", "Id", "100")
   108  	Equal(err, nil)
   109  	Equal(one, nil)
   110  }
   111  
   112  func TestDeleteById(t *testing.T) {
   113  	setTestSqlTable()
   114  	err := DeleteById("kmgSql_test_table", "Id", "1")
   115  	Equal(err, nil)
   116  	one, err := GetOneWhere("kmgSql_test_table", "Id", "1")
   117  	Equal(one, nil)
   118  	Equal(err, nil)
   119  }
   120  
   121  func TestGetAllInTable(t *testing.T) {
   122  	setTestSqlTable()
   123  	row, err := GetAllInTable("kmgSql_test_table")
   124  	Equal(err, nil)
   125  	Equal(len(row), 2)
   126  }
   127  
   128  func setTestSqlTable() {
   129  	MustExec("DROP TABLE IF EXISTS `kmgSql_test_table`")
   130  	MustExec("CREATE TABLE `kmgSql_test_table` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Info` varchar(255) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin")
   131  	MustSetTableDataYaml(`
   132  kmgSql_test_table:
   133    - Id: 1
   134      Info: Hello
   135    - Id: 2
   136      Info: World
   137  `)
   138  }