View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.hadoop.hbase.rest;
19  
20  import static org.junit.Assert.assertEquals;
21  
22  import java.io.IOException;
23  
24  import javax.xml.bind.JAXBException;
25  
26  import org.apache.hadoop.hbase.MediumTests;
27  import org.apache.hadoop.hbase.rest.client.Response;
28  import org.junit.Test;
29  import org.junit.experimental.categories.Category;
30  
31  
32  @Category(MediumTests.class)
33  public class TestDeleteRow extends RowResourceBase {
34  
35    @Test
36    public void testDeleteNonExistentColumn() throws Exception {
37      Response response = putValueJson(TABLE, ROW_1, COLUMN_1, VALUE_1);
38      assertEquals(response.getCode(), 200);
39  
40      response = checkAndDeleteJson(TABLE, ROW_1, COLUMN_1, VALUE_2);
41      assertEquals(304, response.getCode());
42      assertEquals(200, getValueJson(TABLE, ROW_1, COLUMN_1).getCode());
43  
44      response = checkAndDeleteJson(TABLE, ROW_2, COLUMN_1, VALUE_2);
45      assertEquals(304, response.getCode());
46      assertEquals(200, getValueJson(TABLE, ROW_1, COLUMN_1).getCode());
47  
48      response = checkAndDeleteJson(TABLE, ROW_1, "dummy", VALUE_1);
49      assertEquals(400, response.getCode());
50      assertEquals(200, getValueJson(TABLE, ROW_1, COLUMN_1).getCode());
51  
52      response = checkAndDeleteJson(TABLE, ROW_1, "dummy:test", VALUE_1);
53      assertEquals(404, response.getCode());
54      assertEquals(200, getValueJson(TABLE, ROW_1, COLUMN_1).getCode());
55  
56      response = checkAndDeleteJson(TABLE, ROW_1, "a:test", VALUE_1);
57      assertEquals(304, response.getCode());
58      assertEquals(200, getValueJson(TABLE, ROW_1, COLUMN_1).getCode());
59    }
60  
61    @Test
62    public void testDeleteXML() throws IOException, JAXBException {
63      Response response = putValueXML(TABLE, ROW_1, COLUMN_1, VALUE_1);
64      assertEquals(response.getCode(), 200);
65      response = putValueXML(TABLE, ROW_1, COLUMN_2, VALUE_2);
66      assertEquals(response.getCode(), 200);
67      checkValueXML(TABLE, ROW_1, COLUMN_1, VALUE_1);
68      checkValueXML(TABLE, ROW_1, COLUMN_2, VALUE_2);
69  
70      response = deleteValue(TABLE, ROW_1, COLUMN_1);
71      assertEquals(response.getCode(), 200);
72      response = getValueXML(TABLE, ROW_1, COLUMN_1);
73      assertEquals(response.getCode(), 404);
74      checkValueXML(TABLE, ROW_1, COLUMN_2, VALUE_2);
75  
76      response = putValueXML(TABLE, ROW_1, COLUMN_1, VALUE_1);
77      assertEquals(response.getCode(), 200);
78      response = checkAndDeletePB(TABLE, ROW_1, COLUMN_1, VALUE_1);
79      assertEquals(response.getCode(), 200);
80      response = getValueXML(TABLE, ROW_1, COLUMN_1);
81      assertEquals(response.getCode(), 404);
82  
83      response = deleteRow(TABLE, ROW_1);
84      assertEquals(response.getCode(), 200);
85      response = getValueXML(TABLE, ROW_1, COLUMN_1);
86      assertEquals(response.getCode(), 404);
87      response = getValueXML(TABLE, ROW_1, COLUMN_2);
88      assertEquals(response.getCode(), 404);
89  
90      //Delete a row in non existent table
91      response = deleteValue("dummy", ROW_1, COLUMN_1);
92      assertEquals(response.getCode(), 404);
93  
94      //Delete non existent column
95      response = deleteValue(TABLE, ROW_1, "dummy");
96      assertEquals(response.getCode(), 404);
97    }
98  
99  }