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.util.Bytes;
32 import org.junit.Assert;
33 import org.junit.Test;
34
35 public class TestAttributes {
36 @Test
37 public void testAttributesSerialization() throws IOException {
38 Put put = new Put();
39 put.setAttribute("attribute1", Bytes.toBytes("value1"));
40 put.setAttribute("attribute2", Bytes.toBytes("value2"));
41 put.setAttribute("attribute3", Bytes.toBytes("value3"));
42
43 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
44 DataOutput out = new DataOutputStream(byteArrayOutputStream);
45 put.write(out);
46
47 Put put2 = new Put();
48 Assert.assertTrue(put2.getAttributesMap().isEmpty());
49
50 put2.readFields(new DataInputStream(new ByteArrayInputStream(byteArrayOutputStream.toByteArray())));
51
52 Assert.assertNull(put2.getAttribute("absent"));
53 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put2.getAttribute("attribute1")));
54 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put2.getAttribute("attribute2")));
55 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value3"), put2.getAttribute("attribute3")));
56 Assert.assertEquals(3, put2.getAttributesMap().size());
57 }
58
59 @Test
60 public void testPutAttributes() {
61 Put put = new Put();
62 Assert.assertTrue(put.getAttributesMap().isEmpty());
63 Assert.assertNull(put.getAttribute("absent"));
64
65 put.setAttribute("absent", null);
66 Assert.assertTrue(put.getAttributesMap().isEmpty());
67 Assert.assertNull(put.getAttribute("absent"));
68
69
70 put.setAttribute("attribute1", Bytes.toBytes("value1"));
71 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttribute("attribute1")));
72 Assert.assertEquals(1, put.getAttributesMap().size());
73 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttributesMap().get("attribute1")));
74
75
76 put.setAttribute("attribute1", Bytes.toBytes("value12"));
77 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttribute("attribute1")));
78 Assert.assertEquals(1, put.getAttributesMap().size());
79 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttributesMap().get("attribute1")));
80
81
82 put.setAttribute("attribute2", Bytes.toBytes("value2"));
83 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttribute("attribute2")));
84 Assert.assertEquals(2, put.getAttributesMap().size());
85 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttributesMap().get("attribute2")));
86
87
88 put.setAttribute("attribute2", null);
89 Assert.assertNull(put.getAttribute("attribute2"));
90 Assert.assertEquals(1, put.getAttributesMap().size());
91 Assert.assertNull(put.getAttributesMap().get("attribute2"));
92
93
94 put.setAttribute("attribute2", null);
95 Assert.assertNull(put.getAttribute("attribute2"));
96 Assert.assertEquals(1, put.getAttributesMap().size());
97 Assert.assertNull(put.getAttributesMap().get("attribute2"));
98
99
100 put.setAttribute("attribute1", null);
101 Assert.assertNull(put.getAttribute("attribute1"));
102 Assert.assertTrue(put.getAttributesMap().isEmpty());
103 Assert.assertNull(put.getAttributesMap().get("attribute1"));
104 }
105
106
107 @Test
108 public void testDeleteAttributes() {
109 Delete del = new Delete();
110 Assert.assertTrue(del.getAttributesMap().isEmpty());
111 Assert.assertNull(del.getAttribute("absent"));
112
113 del.setAttribute("absent", null);
114 Assert.assertTrue(del.getAttributesMap().isEmpty());
115 Assert.assertNull(del.getAttribute("absent"));
116
117
118 del.setAttribute("attribute1", Bytes.toBytes("value1"));
119 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttribute("attribute1")));
120 Assert.assertEquals(1, del.getAttributesMap().size());
121 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttributesMap().get("attribute1")));
122
123
124 del.setAttribute("attribute1", Bytes.toBytes("value12"));
125 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttribute("attribute1")));
126 Assert.assertEquals(1, del.getAttributesMap().size());
127 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttributesMap().get("attribute1")));
128
129
130 del.setAttribute("attribute2", Bytes.toBytes("value2"));
131 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttribute("attribute2")));
132 Assert.assertEquals(2, del.getAttributesMap().size());
133 Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttributesMap().get("attribute2")));
134
135
136 del.setAttribute("attribute2", null);
137 Assert.assertNull(del.getAttribute("attribute2"));
138 Assert.assertEquals(1, del.getAttributesMap().size());
139 Assert.assertNull(del.getAttributesMap().get("attribute2"));
140
141
142 del.setAttribute("attribute2", null);
143 Assert.assertNull(del.getAttribute("attribute2"));
144 Assert.assertEquals(1, del.getAttributesMap().size());
145 Assert.assertNull(del.getAttributesMap().get("attribute2"));
146
147
148 del.setAttribute("attribute1", null);
149 Assert.assertNull(del.getAttribute("attribute1"));
150 Assert.assertTrue(del.getAttributesMap().isEmpty());
151 Assert.assertNull(del.getAttributesMap().get("attribute1"));
152 }
153 }