func TestCheckAndPutNotPut(t *testing.T) { key := "row101" c := gohbase.NewClient(*host) values := map[string]map[string][]byte{"cf": map[string][]byte{"a": []byte("lol")}} appRequest, err := hrpc.NewAppStr(context.Background(), table, key, values) _, err = c.CheckAndPut(appRequest, "cf", "a", []byte{}) if err == nil { t.Error("CheckAndPut: should not allow anything but Put request") } }
func TestAppend(t *testing.T) { key := "row7" c := gohbase.NewClient(*host) // Inserting "Hello" insertErr := insertKeyValue(c, key, "cf", []byte("Hello")) if insertErr != nil { t.Errorf("Put returned an error: %v", insertErr) } // Appending " my name is Dog." values := map[string]map[string][]byte{"cf": map[string][]byte{}} values["cf"]["a"] = []byte(" my name is Dog.") appRequest, err := hrpc.NewAppStr(context.Background(), table, key, values) appRsp, err := c.Append(appRequest) if err != nil { t.Errorf("Append returned an error: %v", err) } if appRsp.GetResult() == nil { t.Errorf("Append doesn't return updated value.") } // Verifying new result is "Hello my name is Dog." result := appRsp.GetResult().Cell[0].GetValue() if !bytes.Equal([]byte("Hello my name is Dog."), result) { t.Errorf("Append returned an incorrect result. Expected: %v, Receieved: %v", []byte("Hello my name is Dog."), result) } // Make sure the change was actually committed. headers := map[string][]string{"cf": nil} get, err := hrpc.NewGetStr(context.Background(), table, key, hrpc.Families(headers)) rsp, err := c.Get(get) cells := rsp.GetResult().Cell if len(cells) != 1 { t.Errorf("Get expected 1 cells. Received: %d", len(cells)) } result = cells[0].GetValue() if !bytes.Equal([]byte("Hello my name is Dog."), result) { t.Errorf("Append returned an incorrect result. Expected: %v, Receieved: %v", []byte("Hello my name is Dog."), result) } }