001/* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.apache.hadoop.hbase.client; 019 020import static org.junit.jupiter.api.Assertions.assertEquals; 021import static org.junit.jupiter.api.Assertions.assertNull; 022import static org.junit.jupiter.api.Assertions.assertTrue; 023 024import java.util.Arrays; 025import org.apache.hadoop.hbase.testclassification.ClientTests; 026import org.apache.hadoop.hbase.testclassification.SmallTests; 027import org.apache.hadoop.hbase.util.Bytes; 028import org.junit.jupiter.api.Tag; 029import org.junit.jupiter.api.Test; 030 031@Tag(ClientTests.TAG) 032@Tag(SmallTests.TAG) 033public class TestAttributes { 034 035 private static final byte[] ROW = new byte[] { 'r' }; 036 037 @Test 038 public void testPutAttributes() { 039 Put put = new Put(ROW); 040 assertTrue(put.getAttributesMap().isEmpty()); 041 assertNull(put.getAttribute("absent")); 042 043 put.setAttribute("absent", null); 044 assertTrue(put.getAttributesMap().isEmpty()); 045 assertNull(put.getAttribute("absent")); 046 047 // adding attribute 048 put.setAttribute("attribute1", Bytes.toBytes("value1")); 049 assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttribute("attribute1"))); 050 assertEquals(1, put.getAttributesMap().size()); 051 assertTrue(Arrays.equals(Bytes.toBytes("value1"), put.getAttributesMap().get("attribute1"))); 052 053 // overriding attribute value 054 put.setAttribute("attribute1", Bytes.toBytes("value12")); 055 assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttribute("attribute1"))); 056 assertEquals(1, put.getAttributesMap().size()); 057 assertTrue(Arrays.equals(Bytes.toBytes("value12"), put.getAttributesMap().get("attribute1"))); 058 059 // adding another attribute 060 put.setAttribute("attribute2", Bytes.toBytes("value2")); 061 assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttribute("attribute2"))); 062 assertEquals(2, put.getAttributesMap().size()); 063 assertTrue(Arrays.equals(Bytes.toBytes("value2"), put.getAttributesMap().get("attribute2"))); 064 065 // removing attribute 066 put.setAttribute("attribute2", null); 067 assertNull(put.getAttribute("attribute2")); 068 assertEquals(1, put.getAttributesMap().size()); 069 assertNull(put.getAttributesMap().get("attribute2")); 070 071 // removing non-existed attribute 072 put.setAttribute("attribute2", null); 073 assertNull(put.getAttribute("attribute2")); 074 assertEquals(1, put.getAttributesMap().size()); 075 assertNull(put.getAttributesMap().get("attribute2")); 076 077 // removing another attribute 078 put.setAttribute("attribute1", null); 079 assertNull(put.getAttribute("attribute1")); 080 assertTrue(put.getAttributesMap().isEmpty()); 081 assertNull(put.getAttributesMap().get("attribute1")); 082 } 083 084 @Test 085 public void testDeleteAttributes() { 086 Delete del = new Delete(new byte[] { 'r' }); 087 assertTrue(del.getAttributesMap().isEmpty()); 088 assertNull(del.getAttribute("absent")); 089 090 del.setAttribute("absent", null); 091 assertTrue(del.getAttributesMap().isEmpty()); 092 assertNull(del.getAttribute("absent")); 093 094 // adding attribute 095 del.setAttribute("attribute1", Bytes.toBytes("value1")); 096 assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttribute("attribute1"))); 097 assertEquals(1, del.getAttributesMap().size()); 098 assertTrue(Arrays.equals(Bytes.toBytes("value1"), del.getAttributesMap().get("attribute1"))); 099 100 // overriding attribute value 101 del.setAttribute("attribute1", Bytes.toBytes("value12")); 102 assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttribute("attribute1"))); 103 assertEquals(1, del.getAttributesMap().size()); 104 assertTrue(Arrays.equals(Bytes.toBytes("value12"), del.getAttributesMap().get("attribute1"))); 105 106 // adding another attribute 107 del.setAttribute("attribute2", Bytes.toBytes("value2")); 108 assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttribute("attribute2"))); 109 assertEquals(2, del.getAttributesMap().size()); 110 assertTrue(Arrays.equals(Bytes.toBytes("value2"), del.getAttributesMap().get("attribute2"))); 111 112 // removing attribute 113 del.setAttribute("attribute2", null); 114 assertNull(del.getAttribute("attribute2")); 115 assertEquals(1, del.getAttributesMap().size()); 116 assertNull(del.getAttributesMap().get("attribute2")); 117 118 // removing non-existed attribute 119 del.setAttribute("attribute2", null); 120 assertNull(del.getAttribute("attribute2")); 121 assertEquals(1, del.getAttributesMap().size()); 122 assertNull(del.getAttributesMap().get("attribute2")); 123 124 // removing another attribute 125 del.setAttribute("attribute1", null); 126 assertNull(del.getAttribute("attribute1")); 127 assertTrue(del.getAttributesMap().isEmpty()); 128 assertNull(del.getAttributesMap().get("attribute1")); 129 } 130 131 @Test 132 public void testGetId() { 133 Get get = new Get(ROW); 134 assertNull(get.toMap().get("id"), "Make sure id is null if unset"); 135 get.setId("myId"); 136 assertEquals("myId", get.toMap().get("id")); 137 } 138 139 @Test 140 public void testAppendId() { 141 Append append = new Append(ROW); 142 assertNull(append.toMap().get("id"), "Make sure id is null if unset"); 143 append.setId("myId"); 144 assertEquals("myId", append.toMap().get("id")); 145 } 146 147 @Test 148 public void testDeleteId() { 149 Delete delete = new Delete(ROW); 150 assertNull(delete.toMap().get("id"), "Make sure id is null if unset"); 151 delete.setId("myId"); 152 assertEquals("myId", delete.toMap().get("id")); 153 } 154 155 @Test 156 public void testPutId() { 157 Put put = new Put(ROW); 158 assertNull(put.toMap().get("id"), "Make sure id is null if unset"); 159 put.setId("myId"); 160 assertEquals("myId", put.toMap().get("id")); 161 } 162 163 @Test 164 public void testScanId() { 165 Scan scan = new Scan(); 166 assertNull(scan.toMap().get("id"), "Make sure id is null if unset"); 167 scan.setId("myId"); 168 assertEquals("myId", scan.toMap().get("id")); 169 } 170}