github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/go-hbase/put_test.go (about) 1 package hbase 2 3 import ( 4 "bytes" 5 6 . "github.com/insionng/yougam/libraries/pingcap/check" 7 "github.com/insionng/yougam/libraries/pingcap/go-hbase/proto" 8 ) 9 10 type HBasePutTestSuit struct { 11 cli HBaseClient 12 tableName string 13 } 14 15 var _ = Suite(&HBasePutTestSuit{}) 16 17 func (s *HBasePutTestSuit) SetUpTest(c *C) { 18 var err error 19 s.cli, err = NewClient(getTestZkHosts(), "/hbase") 20 c.Assert(err, IsNil) 21 22 s.tableName = "t2" 23 tblDesc := NewTableDesciptor(s.tableName) 24 cf := NewColumnFamilyDescriptor("cf") 25 tblDesc.AddColumnDesc(cf) 26 err = s.cli.CreateTable(tblDesc, nil) 27 c.Assert(err, IsNil) 28 } 29 30 func (s *HBasePutTestSuit) TearDownTest(c *C) { 31 err := s.cli.DisableTable(s.tableName) 32 c.Assert(err, IsNil) 33 34 err = s.cli.DropTable(s.tableName) 35 c.Assert(err, IsNil) 36 } 37 38 func (s *HBasePutTestSuit) TestPut(c *C) { 39 g := NewPut([]byte("row")) 40 g.AddValue([]byte("cf"), []byte("q"), []byte("val")) 41 msg := g.ToProto() 42 p, _ := msg.(*proto.MutationProto) 43 44 c.Assert(*p.MutateType, Equals, *proto.MutationProto_PUT.Enum()) 45 46 for _, col := range p.ColumnValue { 47 for _, v := range col.QualifierValue { 48 c.Assert(bytes.Compare([]byte("q"), v.Qualifier), Equals, 0) 49 c.Assert(bytes.Compare([]byte("val"), v.Value), Equals, 0) 50 } 51 } 52 } 53 54 func (s *HBasePutTestSuit) TestGetPut(c *C) { 55 p := NewPut([]byte("1_\xff\xff")) 56 p2 := NewPut([]byte("1_\xff\xfe")) 57 p3 := NewPut([]byte("1_\xff\xee")) 58 p.AddValue([]byte("cf"), []byte("q"), []byte("!")) 59 p2.AddValue([]byte("cf"), []byte("q"), []byte("!")) 60 p3.AddValue([]byte("cf"), []byte("q"), []byte("!")) 61 62 cli, err := NewClient(getTestZkHosts(), "/hbase") 63 c.Assert(err, Equals, nil) 64 65 ok, err := cli.Put(s.tableName, p) 66 c.Assert(ok, IsTrue) 67 c.Assert(err, IsNil) 68 69 ok, err = cli.Put(s.tableName, p2) 70 c.Assert(ok, IsTrue) 71 c.Assert(err, IsNil) 72 73 ok, err = cli.Put(s.tableName, p3) 74 c.Assert(ok, IsTrue) 75 c.Assert(err, IsNil) 76 77 scan := NewScan([]byte(s.tableName), 100, cli) 78 scan.StartRow = []byte("1_") 79 for { 80 r := scan.Next() 81 if r == nil { 82 break 83 } 84 } 85 86 ok, err = cli.Delete(s.tableName, NewDelete([]byte("1_\xff\xff"))) 87 c.Assert(ok, IsTrue) 88 c.Assert(err, IsNil) 89 90 ok, err = cli.Delete(s.tableName, NewDelete([]byte("1_\xff\xfe"))) 91 c.Assert(ok, IsTrue) 92 c.Assert(err, IsNil) 93 94 ok, err = cli.Delete(s.tableName, NewDelete([]byte("1_\xff\xee"))) 95 c.Assert(ok, IsTrue) 96 c.Assert(err, IsNil) 97 }