/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.hadoop.hbase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.IOException; import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver; import org.junit.Test; import org.junit.experimental.categories.Category; /** * Test setting values in the descriptor */ @Category(SmallTests.class) public class TestHTableDescriptor { @Test public void testPb() throws DeserializationException, IOException { HTableDescriptor htd = HTableDescriptor.META_TABLEDESC; final int v = 123; htd.setMaxFileSize(v); htd.setDeferredLogFlush(true); htd.setReadOnly(true); byte [] bytes = htd.toByteArray(); HTableDescriptor deserializedHtd = HTableDescriptor.parseFrom(bytes); assertEquals(htd, deserializedHtd); assertEquals(v, deserializedHtd.getMaxFileSize()); assertTrue(deserializedHtd.isReadOnly()); assertTrue(deserializedHtd.isDeferredLogFlush()); } /** * Test cps in the table description * @throws Exception */ @Test public void testGetSetRemoveCP() throws Exception { HTableDescriptor desc = new HTableDescriptor("table"); // simple CP String className = BaseRegionObserver.class.getName(); // add and check that it is present desc.addCoprocessor(className); assertTrue(desc.hasCoprocessor(className)); // remove it and check that it is gone desc.removeCoprocessor(className); assertFalse(desc.hasCoprocessor(className)); } /** * Test that we add and remove strings from settings properly. * @throws Exception */ @Test public void testRemoveString() throws Exception { HTableDescriptor desc = new HTableDescriptor("table"); String key = "Some"; String value = "value"; desc.setValue(key, value); assertEquals(value, desc.getValue(key)); desc.remove(key); assertEquals(null, desc.getValue(key)); } }