github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/tidb/xapi/tablecodec/tablecodec_test.go (about) 1 // Copyright 2016 PingCAP, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package tablecodec 15 16 import ( 17 "testing" 18 19 . "github.com/insionng/yougam/libraries/pingcap/check" 20 "github.com/insionng/yougam/libraries/pingcap/tidb/model" 21 "github.com/insionng/yougam/libraries/pingcap/tidb/mysql" 22 "github.com/insionng/yougam/libraries/pingcap/tidb/util/codec" 23 "github.com/insionng/yougam/libraries/pingcap/tidb/util/testleak" 24 "github.com/insionng/yougam/libraries/pingcap/tidb/util/types" 25 ) 26 27 func TestT(t *testing.T) { 28 TestingT(t) 29 } 30 31 var _ = Suite(&testTableCodecSuite{}) 32 33 type testTableCodecSuite struct{} 34 35 // TODO: add more tests. 36 func (s *testTableCodecSuite) TestTableCodec(c *C) { 37 defer testleak.AfterTest(c)() 38 key := EncodeRowKey(1, codec.EncodeInt(nil, 2)) 39 h, err := DecodeRowKey(key) 40 c.Assert(err, IsNil) 41 c.Assert(h, Equals, int64(2)) 42 43 key = EncodeColumnKey(1, 2, 3) 44 h, err = DecodeRowKey(key) 45 c.Assert(err, IsNil) 46 c.Assert(h, Equals, int64(2)) 47 } 48 49 func (s *testTableCodecSuite) TestColumnToProto(c *C) { 50 defer testleak.AfterTest(c)() 51 // Make sure the Flag is set in tipb.ColumnInfo 52 tp := types.NewFieldType(mysql.TypeLong) 53 tp.Flag = 10 54 col := &model.ColumnInfo{ 55 FieldType: *tp, 56 } 57 pc := columnToProto(col) 58 c.Assert(pc.GetFlag(), Equals, int32(10)) 59 }