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.client;
19  
20  import java.util.Arrays;
21  
22  import org.apache.hadoop.hbase.testclassification.SmallTests;
23  import org.apache.hadoop.hbase.util.Bytes;
24  import org.junit.Assert;
25  import org.junit.Test;
26  import org.junit.experimental.categories.Category;
27  
28  @Category(SmallTests.class)
29  public class TestAttributes {
30    private static final byte [] ROW = new byte [] {'r'};
31    @Test
32    public void testPutAttributes() {
33      Put put = new Put(ROW);
34      Assert.assertTrue(put.getAttributesMap().isEmpty());
35      Assert.assertNull(put.getAttribute("absent"));
36  
37      put.setAttribute("absent", null);
38      Assert.assertTrue(put.getAttributesMap().isEmpty());
39      Assert.assertNull(put.getAttribute("absent"));
40  
41      // adding attribute
42      put.setAttribute("attribute1", Bytes.toBytes("value1"));
43      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttribute("attribute1")));
44      Assert.assertEquals(1, put.getAttributesMap().size());
45      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"),
46          put.getAttributesMap().get("attribute1")));
47  
48      // overriding attribute value
49      put.setAttribute("attribute1", Bytes.toBytes("value12"));
50      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttribute("attribute1")));
51      Assert.assertEquals(1, put.getAttributesMap().size());
52      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"),
53          put.getAttributesMap().get("attribute1")));
54  
55      // adding another attribute
56      put.setAttribute("attribute2", Bytes.toBytes("value2"));
57      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttribute("attribute2")));
58      Assert.assertEquals(2, put.getAttributesMap().size());
59      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"),
60          put.getAttributesMap().get("attribute2")));
61  
62      // removing attribute
63      put.setAttribute("attribute2", null);
64      Assert.assertNull(put.getAttribute("attribute2"));
65      Assert.assertEquals(1, put.getAttributesMap().size());
66      Assert.assertNull(put.getAttributesMap().get("attribute2"));
67  
68      // removing non-existed attribute
69      put.setAttribute("attribute2", null);
70      Assert.assertNull(put.getAttribute("attribute2"));
71      Assert.assertEquals(1, put.getAttributesMap().size());
72      Assert.assertNull(put.getAttributesMap().get("attribute2"));
73  
74      // removing another attribute
75      put.setAttribute("attribute1", null);
76      Assert.assertNull(put.getAttribute("attribute1"));
77      Assert.assertTrue(put.getAttributesMap().isEmpty());
78      Assert.assertNull(put.getAttributesMap().get("attribute1"));
79    }
80  
81    @Test
82    public void testDeleteAttributes() {
83      Delete del = new Delete(new byte [] {'r'});
84      Assert.assertTrue(del.getAttributesMap().isEmpty());
85      Assert.assertNull(del.getAttribute("absent"));
86  
87      del.setAttribute("absent", null);
88      Assert.assertTrue(del.getAttributesMap().isEmpty());
89      Assert.assertNull(del.getAttribute("absent"));
90  
91      // adding attribute
92      del.setAttribute("attribute1", Bytes.toBytes("value1"));
93      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttribute("attribute1")));
94      Assert.assertEquals(1, del.getAttributesMap().size());
95      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"),
96          del.getAttributesMap().get("attribute1")));
97  
98      // overriding attribute value
99      del.setAttribute("attribute1", Bytes.toBytes("value12"));
100     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttribute("attribute1")));
101     Assert.assertEquals(1, del.getAttributesMap().size());
102     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"),
103         del.getAttributesMap().get("attribute1")));
104 
105     // adding another attribute
106     del.setAttribute("attribute2", Bytes.toBytes("value2"));
107     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttribute("attribute2")));
108     Assert.assertEquals(2, del.getAttributesMap().size());
109     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"),
110         del.getAttributesMap().get("attribute2")));
111 
112     // removing attribute
113     del.setAttribute("attribute2", null);
114     Assert.assertNull(del.getAttribute("attribute2"));
115     Assert.assertEquals(1, del.getAttributesMap().size());
116     Assert.assertNull(del.getAttributesMap().get("attribute2"));
117 
118     // removing non-existed attribute
119     del.setAttribute("attribute2", null);
120     Assert.assertNull(del.getAttribute("attribute2"));
121     Assert.assertEquals(1, del.getAttributesMap().size());
122     Assert.assertNull(del.getAttributesMap().get("attribute2"));
123 
124     // removing another attribute
125     del.setAttribute("attribute1", null);
126     Assert.assertNull(del.getAttribute("attribute1"));
127     Assert.assertTrue(del.getAttributesMap().isEmpty());
128     Assert.assertNull(del.getAttributesMap().get("attribute1"));
129   }
130 
131   @Test
132   public void testGetId() {
133     Get get = new Get(ROW);
134     Assert.assertNull("Make sure id is null if unset", get.toMap().get("id"));
135     get.setId("myId");
136     Assert.assertEquals("myId", get.toMap().get("id"));
137   }
138 
139   @Test
140   public void testAppendId() {
141     Append append = new Append(ROW);
142     Assert.assertNull("Make sure id is null if unset", append.toMap().get("id"));
143     append.setId("myId");
144     Assert.assertEquals("myId", append.toMap().get("id"));
145   }
146 
147   @Test
148   public void testDeleteId() {
149     Delete delete = new Delete(ROW);
150     Assert.assertNull("Make sure id is null if unset", delete.toMap().get("id"));
151     delete.setId("myId");
152     Assert.assertEquals("myId", delete.toMap().get("id"));
153   }
154 
155   @Test
156   public void testPutId() {
157     Put put = new Put(ROW);
158     Assert.assertNull("Make sure id is null if unset", put.toMap().get("id"));
159     put.setId("myId");
160     Assert.assertEquals("myId", put.toMap().get("id"));
161   }
162 
163   @Test
164   public void testScanId() {
165     Scan scan = new Scan();
166     Assert.assertNull("Make sure id is null if unset", scan.toMap().get("id"));
167     scan.setId("myId");
168     Assert.assertEquals("myId", scan.toMap().get("id"));
169   }
170 }