github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/go-hbase/del_test.go (about) 1 package hbase 2 3 import ( 4 . "github.com/insionng/yougam/libraries/pingcap/check" 5 "github.com/insionng/yougam/libraries/pingcap/go-hbase/proto" 6 ) 7 8 type HBaseDelTestSuit struct { 9 cli HBaseClient 10 tableName string 11 } 12 13 var _ = Suite(&HBaseDelTestSuit{}) 14 15 func (s *HBaseDelTestSuit) SetUpTest(c *C) { 16 var err error 17 s.cli, err = NewClient(getTestZkHosts(), "/hbase") 18 c.Assert(err, IsNil) 19 20 s.tableName = "t2" 21 tblDesc := NewTableDesciptor(s.tableName) 22 cf := NewColumnFamilyDescriptor("cf") 23 tblDesc.AddColumnDesc(cf) 24 err = s.cli.CreateTable(tblDesc, nil) 25 c.Assert(err, IsNil) 26 } 27 28 func (s *HBaseDelTestSuit) TearDownTest(c *C) { 29 err := s.cli.DisableTable(s.tableName) 30 c.Assert(err, IsNil) 31 32 err = s.cli.DropTable(s.tableName) 33 c.Assert(err, IsNil) 34 } 35 36 func (s *HBaseDelTestSuit) TestDel(c *C) { 37 d := NewDelete([]byte("hello")) 38 d.AddFamily([]byte("cf")) 39 d.AddFamily([]byte("cf1")) 40 msg := d.ToProto() 41 42 p, ok := msg.(*proto.MutationProto) 43 c.Assert(ok, IsTrue) 44 c.Assert(string(p.Row), Equals, "hello") 45 c.Assert(*p.MutateType, Equals, *proto.MutationProto_DELETE.Enum()) 46 47 cv := p.GetColumnValue() 48 c.Assert(cv, HasLen, 2) 49 50 for _, v := range cv { 51 c.Assert(v.QualifierValue, HasLen, 1) 52 c.Assert(*v.QualifierValue[0].DeleteType, Equals, *proto.MutationProto_DELETE_FAMILY.Enum()) 53 } 54 55 d = NewDelete([]byte("hello")) 56 d.AddStringColumn("cf\x00", "q") 57 d.AddStringColumn("cf", "q") 58 d.AddStringColumn("cf", "q") 59 msg = d.ToProto() 60 p, _ = msg.(*proto.MutationProto) 61 cv = p.GetColumnValue() 62 c.Assert(cv, HasLen, 2) 63 64 for _, v := range cv { 65 c.Assert(v.QualifierValue, HasLen, 1) 66 c.Assert(*v.QualifierValue[0].DeleteType, Equals, *proto.MutationProto_DELETE_MULTIPLE_VERSIONS.Enum()) 67 } 68 } 69 70 func (s *HBaseDelTestSuit) TestDelWithClient(c *C) { 71 // Test put a new value. 72 p := NewPut([]byte("test")) 73 p.AddValue([]byte("cf"), []byte("q"), []byte("val")) 74 ok, err := s.cli.Put(s.tableName, p) 75 c.Assert(ok, IsTrue) 76 c.Assert(err, IsNil) 77 78 g := NewGet([]byte("test")) 79 g.AddStringFamily("cf") 80 r, err := s.cli.Get(s.tableName, g) 81 c.Assert(err, IsNil) 82 c.Assert(string(r.Columns["cf:q"].Value), Equals, "val") 83 84 // Test delte the value. 85 d := NewDelete([]byte("test")) 86 d.AddColumn([]byte("cf"), []byte("q")) 87 b, err := s.cli.Delete(s.tableName, d) 88 c.Assert(err, IsNil) 89 c.Assert(b, IsTrue) 90 91 r, err = s.cli.Get(s.tableName, g) 92 c.Assert(err, IsNil) 93 c.Assert(r, IsNil) 94 }