/* * 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.accumulo.tserver.tablet; import java.util.Map.Entry; import org.apache.accumulo.core.conf.AccumuloConfiguration; import org.apache.accumulo.core.conf.ConfigurationObserver; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.data.impl.KeyExtent; import org.apache.accumulo.server.conf.TableConfiguration; import org.apache.accumulo.server.tablets.TabletTime; import org.apache.accumulo.tserver.TabletServer; import org.apache.accumulo.tserver.TabletServerResourceManager.TabletResourceManager; import org.apache.accumulo.tserver.compaction.CompactionPlan; import org.apache.accumulo.tserver.compaction.WriteParameters; import org.apache.hadoop.fs.Path; import org.easymock.EasyMock; import org.junit.Assert; import org.junit.Test; import com.google.common.collect.Iterators; /** * */ public class TabletTest { @Test public void correctValuesSetForProperties() { TableConfiguration tableConf = EasyMock.createMock(TableConfiguration.class); CompactionPlan plan = EasyMock.createMock(CompactionPlan.class); WriteParameters writeParams = EasyMock.createMock(WriteParameters.class); plan.writeParameters = writeParams; DatafileManager dfm = EasyMock.createMock(DatafileManager.class); TabletTime time = EasyMock.createMock(TabletTime.class); TabletServer tserver = EasyMock.createMock(TabletServer.class); TabletResourceManager tserverResourceManager = EasyMock.createMock(TabletResourceManager.class); TabletMemory tabletMemory = EasyMock.createMock(TabletMemory.class); KeyExtent extent = EasyMock.createMock(KeyExtent.class); ConfigurationObserver obs = EasyMock.createMock(ConfigurationObserver.class); Tablet tablet = new Tablet(time, "", 0, new Path("/foo"), dfm, tserver, tserverResourceManager, tabletMemory, tableConf, extent, obs); long hdfsBlockSize = 10000l, blockSize = 5000l, indexBlockSize = 500l; int replication = 5; String compressType = "snappy"; EasyMock.expect(tableConf.iterator()).andReturn(Iterators.<Entry<String,String>> emptyIterator()); EasyMock.expect(writeParams.getHdfsBlockSize()).andReturn(hdfsBlockSize).times(2); EasyMock.expect(writeParams.getBlockSize()).andReturn(blockSize).times(2); EasyMock.expect(writeParams.getIndexBlockSize()).andReturn(indexBlockSize).times(2); EasyMock.expect(writeParams.getCompressType()).andReturn(compressType).times(2); EasyMock.expect(writeParams.getReplication()).andReturn(replication).times(2); EasyMock.replay(tableConf, plan, writeParams); AccumuloConfiguration aConf = tablet.createTableConfiguration(tableConf, plan); EasyMock.verify(tableConf, plan, writeParams); Assert.assertEquals(hdfsBlockSize, Long.parseLong(aConf.get(Property.TABLE_FILE_BLOCK_SIZE))); Assert.assertEquals(blockSize, Long.parseLong(aConf.get(Property.TABLE_FILE_COMPRESSED_BLOCK_SIZE))); Assert.assertEquals(indexBlockSize, Long.parseLong(aConf.get(Property.TABLE_FILE_COMPRESSED_BLOCK_SIZE_INDEX))); Assert.assertEquals(compressType, aConf.get(Property.TABLE_FILE_COMPRESSION_TYPE)); Assert.assertEquals(replication, Integer.parseInt(aConf.get(Property.TABLE_FILE_REPLICATION))); } }