View Javadoc

1   /**
2    *
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   *     http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   */
19  
20  package org.apache.hadoop.hbase.client;
21  
22  import java.util.Arrays;
23  
24  import org.apache.hadoop.hbase.testclassification.SmallTests;
25  import org.apache.hadoop.hbase.util.Bytes;
26  import org.junit.Assert;
27  import org.junit.Test;
28  import org.junit.experimental.categories.Category;
29  
30  @Category(SmallTests.class)
31  public class TestAttributes {
32    private static final byte [] ROW = new byte [] {'r'};
33    @Test
34    public void testPutAttributes() {
35      Put put = new Put(ROW);
36      Assert.assertTrue(put.getAttributesMap().isEmpty());
37      Assert.assertNull(put.getAttribute("absent"));
38  
39      put.setAttribute("absent", null);
40      Assert.assertTrue(put.getAttributesMap().isEmpty());
41      Assert.assertNull(put.getAttribute("absent"));
42  
43      // adding attribute
44      put.setAttribute("attribute1", Bytes.toBytes("value1"));
45      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttribute("attribute1")));
46      Assert.assertEquals(1, put.getAttributesMap().size());
47      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttributesMap().get("attribute1")));
48  
49      // overriding attribute value
50      put.setAttribute("attribute1", Bytes.toBytes("value12"));
51      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttribute("attribute1")));
52      Assert.assertEquals(1, put.getAttributesMap().size());
53      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), 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"), put.getAttributesMap().get("attribute2")));
60  
61      // removing attribute
62      put.setAttribute("attribute2", null);
63      Assert.assertNull(put.getAttribute("attribute2"));
64      Assert.assertEquals(1, put.getAttributesMap().size());
65      Assert.assertNull(put.getAttributesMap().get("attribute2"));
66  
67      // removing non-existed attribute
68      put.setAttribute("attribute2", null);
69      Assert.assertNull(put.getAttribute("attribute2"));
70      Assert.assertEquals(1, put.getAttributesMap().size());
71      Assert.assertNull(put.getAttributesMap().get("attribute2"));
72  
73      // removing another attribute
74      put.setAttribute("attribute1", null);
75      Assert.assertNull(put.getAttribute("attribute1"));
76      Assert.assertTrue(put.getAttributesMap().isEmpty());
77      Assert.assertNull(put.getAttributesMap().get("attribute1"));
78    }
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"), del.getAttributesMap().get("attribute1")));
96  
97      // overriding attribute value
98      del.setAttribute("attribute1", Bytes.toBytes("value12"));
99      Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttribute("attribute1")));
100     Assert.assertEquals(1, del.getAttributesMap().size());
101     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttributesMap().get("attribute1")));
102 
103     // adding another attribute
104     del.setAttribute("attribute2", Bytes.toBytes("value2"));
105     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttribute("attribute2")));
106     Assert.assertEquals(2, del.getAttributesMap().size());
107     Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttributesMap().get("attribute2")));
108 
109     // removing attribute
110     del.setAttribute("attribute2", null);
111     Assert.assertNull(del.getAttribute("attribute2"));
112     Assert.assertEquals(1, del.getAttributesMap().size());
113     Assert.assertNull(del.getAttributesMap().get("attribute2"));
114 
115     // removing non-existed attribute
116     del.setAttribute("attribute2", null);
117     Assert.assertNull(del.getAttribute("attribute2"));
118     Assert.assertEquals(1, del.getAttributesMap().size());
119     Assert.assertNull(del.getAttributesMap().get("attribute2"));
120 
121     // removing another attribute
122     del.setAttribute("attribute1", null);
123     Assert.assertNull(del.getAttribute("attribute1"));
124     Assert.assertTrue(del.getAttributesMap().isEmpty());
125     Assert.assertNull(del.getAttributesMap().get("attribute1"));
126   }
127 
128   @Test
129   public void testGetId() {
130     Get get = new Get(ROW);
131     Assert.assertNull("Make sure id is null if unset", get.toMap().get("id"));
132     get.setId("myId");
133     Assert.assertEquals("myId", get.toMap().get("id"));
134   }
135 
136   @Test
137   public void testAppendId() {
138     Append append = new Append(ROW);
139     Assert.assertNull("Make sure id is null if unset", append.toMap().get("id"));
140     append.setId("myId");
141     Assert.assertEquals("myId", append.toMap().get("id"));
142   }
143 
144   @Test
145   public void testDeleteId() {
146     Delete delete = new Delete(ROW);
147     Assert.assertNull("Make sure id is null if unset", delete.toMap().get("id"));
148     delete.setId("myId");
149     Assert.assertEquals("myId", delete.toMap().get("id"));
150   }
151 
152   @Test
153   public void testPutId() {
154     Put put = new Put(ROW);
155     Assert.assertNull("Make sure id is null if unset", put.toMap().get("id"));
156     put.setId("myId");
157     Assert.assertEquals("myId", put.toMap().get("id"));
158   }
159 
160   @Test
161   public void testScanId() {
162     Scan scan = new Scan();
163     Assert.assertNull("Make sure id is null if unset", scan.toMap().get("id"));
164     scan.setId("myId");
165     Assert.assertEquals("myId", scan.toMap().get("id"));
166   }
167 }