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  }