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  }