1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.client;
22
23 import java.io.ByteArrayInputStream;
24 import java.io.ByteArrayOutputStream;
25 import java.io.DataInputStream;
26 import java.io.DataOutput;
27 import java.io.DataOutputStream;
28 import java.io.IOException;
29 import java.util.Arrays;
30
31 import org.apache.hadoop.hbase.SmallTests;
32 import org.apache.hadoop.hbase.util.Bytes;
33 import org.junit.Assert;
34 import org.junit.Test;
35 import org.junit.experimental.categories.Category;
36
37 @Category(SmallTests.class)
38 public class TestAttributes {
39 @Test
40 public void testAttributesSerialization() throws IOException {
41 Put put = new Put();
42 put.setAttribute("attribute1", Bytes.toBytes("value1"));
43 put.setAttribute("attribute2", Bytes.toBytes("value2"));
44 put.setAttribute("attribute3", Bytes.toBytes("value3"));
45
46 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
47 DataOutput out = new DataOutputStream(byteArrayOutputStream);
48 put.write(out);
49
50 Put put2 = new Put();
51 Assert.assertTrue(put2.getAttributesMap().isEmpty());
52
53 put2.readFields(new DataInputStream(new ByteArrayInputStream(byteArrayOutputStream.toByteArray())));
54
55 Assert.assertNull(put2.getAttribute("absent"));
56 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put2.getAttribute("attribute1")));
57 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put2.getAttribute("attribute2")));
58 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value3"), put2.getAttribute("attribute3")));
59 Assert.assertEquals(3, put2.getAttributesMap().size());
60 }
61
62 @Test
63 public void testPutAttributes() {
64 Put put = new Put();
65 Assert.assertTrue(put.getAttributesMap().isEmpty());
66 Assert.assertNull(put.getAttribute("absent"));
67
68 put.setAttribute("absent", null);
69 Assert.assertTrue(put.getAttributesMap().isEmpty());
70 Assert.assertNull(put.getAttribute("absent"));
71
72
73 put.setAttribute("attribute1", Bytes.toBytes("value1"));
74 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttribute("attribute1")));
75 Assert.assertEquals(1, put.getAttributesMap().size());
76 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttributesMap().get("attribute1")));
77
78
79 put.setAttribute("attribute1", Bytes.toBytes("value12"));
80 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttribute("attribute1")));
81 Assert.assertEquals(1, put.getAttributesMap().size());
82 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttributesMap().get("attribute1")));
83
84
85 put.setAttribute("attribute2", Bytes.toBytes("value2"));
86 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttribute("attribute2")));
87 Assert.assertEquals(2, put.getAttributesMap().size());
88 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttributesMap().get("attribute2")));
89
90
91 put.setAttribute("attribute2", null);
92 Assert.assertNull(put.getAttribute("attribute2"));
93 Assert.assertEquals(1, put.getAttributesMap().size());
94 Assert.assertNull(put.getAttributesMap().get("attribute2"));
95
96
97 put.setAttribute("attribute2", null);
98 Assert.assertNull(put.getAttribute("attribute2"));
99 Assert.assertEquals(1, put.getAttributesMap().size());
100 Assert.assertNull(put.getAttributesMap().get("attribute2"));
101
102
103 put.setAttribute("attribute1", null);
104 Assert.assertNull(put.getAttribute("attribute1"));
105 Assert.assertTrue(put.getAttributesMap().isEmpty());
106 Assert.assertNull(put.getAttributesMap().get("attribute1"));
107 }
108
109
110 @Test
111 public void testDeleteAttributes() {
112 Delete del = new Delete();
113 Assert.assertTrue(del.getAttributesMap().isEmpty());
114 Assert.assertNull(del.getAttribute("absent"));
115
116 del.setAttribute("absent", null);
117 Assert.assertTrue(del.getAttributesMap().isEmpty());
118 Assert.assertNull(del.getAttribute("absent"));
119
120
121 del.setAttribute("attribute1", Bytes.toBytes("value1"));
122 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttribute("attribute1")));
123 Assert.assertEquals(1, del.getAttributesMap().size());
124 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttributesMap().get("attribute1")));
125
126
127 del.setAttribute("attribute1", Bytes.toBytes("value12"));
128 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttribute("attribute1")));
129 Assert.assertEquals(1, del.getAttributesMap().size());
130 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttributesMap().get("attribute1")));
131
132
133 del.setAttribute("attribute2", Bytes.toBytes("value2"));
134 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttribute("attribute2")));
135 Assert.assertEquals(2, del.getAttributesMap().size());
136 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttributesMap().get("attribute2")));
137
138
139 del.setAttribute("attribute2", null);
140 Assert.assertNull(del.getAttribute("attribute2"));
141 Assert.assertEquals(1, del.getAttributesMap().size());
142 Assert.assertNull(del.getAttributesMap().get("attribute2"));
143
144
145 del.setAttribute("attribute2", null);
146 Assert.assertNull(del.getAttribute("attribute2"));
147 Assert.assertEquals(1, del.getAttributesMap().size());
148 Assert.assertNull(del.getAttributesMap().get("attribute2"));
149
150
151 del.setAttribute("attribute1", null);
152 Assert.assertNull(del.getAttribute("attribute1"));
153 Assert.assertTrue(del.getAttributesMap().isEmpty());
154 Assert.assertNull(del.getAttributesMap().get("attribute1"));
155 }
156
157 @Test
158 public void testGetId() {
159 Get get = new Get();
160 Assert.assertNull("Make sure id is null if unset", get.toMap().get("id"));
161 get.setId("myId");
162 Assert.assertEquals("myId", get.toMap().get("id"));
163 }
164
165 @Test
166 public void testAppendId() {
167 Append append = new Append();
168 Assert.assertNull("Make sure id is null if unset", append.toMap().get("id"));
169 append.setId("myId");
170 Assert.assertEquals("myId", append.toMap().get("id"));
171 }
172
173 @Test
174 public void testDeleteId() {
175 Delete delete = new Delete();
176 Assert.assertNull("Make sure id is null if unset", delete.toMap().get("id"));
177 delete.setId("myId");
178 Assert.assertEquals("myId", delete.toMap().get("id"));
179 }
180
181 @Test
182 public void testPutId() {
183 Put put = new Put();
184 Assert.assertNull("Make sure id is null if unset", put.toMap().get("id"));
185 put.setId("myId");
186 Assert.assertEquals("myId", put.toMap().get("id"));
187 }
188
189 @Test
190 public void testScanId() {
191 Scan scan = new Scan();
192 Assert.assertNull("Make sure id is null if unset", scan.toMap().get("id"));
193 scan.setId("myId");
194 Assert.assertEquals("myId", scan.toMap().get("id"));
195 }
196
197 @org.junit.Rule
198 public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =
199 new org.apache.hadoop.hbase.ResourceCheckerJUnitRule();
200 }
201