### Question:
ShardTableConfigHelper extends AbstractTableConfigHelper { protected void configureShardTable(TableOperations tops) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { CombinerConfiguration tfConf = new CombinerConfiguration(new Column("tf"), new IteratorSetting(10, "TF", datawave.ingest.table.aggregator.TextIndexAggregator.class.getName())); setAggregatorConfigurationIfNecessary(tableName, Collections.singletonList(tfConf), tops, log); if (markingsSetupIteratorEnabled) { for (IteratorScope scope : IteratorScope.values()) { String stem = String.format("%s%s.%s", Property.TABLE_ITERATOR_PREFIX, scope.name(), "MarkingsLoader"); setPropertyIfNecessary(tableName, stem, markingsSetupIteratorConfig, tops, log); } } setLocalityGroupConfigurationIfNecessary(tableName, localityGroups, tops, log); if (enableBloomFilters) { setPropertyIfNecessary(tableName, Property.TABLE_BLOOM_KEY_FUNCTOR.getKey(), SHARD_KEY_FUNCTOR_CLASS, tops, log); } setPropertyIfNecessary(tableName, Property.TABLE_BLOOM_ENABLED.getKey(), Boolean.toString(enableBloomFilters), tops, log); setPropertyIfNecessary(tableName, Property.TABLE_LOAD_BALANCER.getKey(), shardTableBalancerClass, tops, log); }  @Override void setup(String tableName, Configuration config, Logger log); @Override void configure(TableOperations tops); static final String SHARD_TABLE_BALANCER_CONFIG; static final String ENABLE_BLOOM_FILTERS; static final String MARKINGS_SETUP_ITERATOR_ENABLED; static final String MARKINGS_SETUP_ITERATOR_CONFIG; static final String LOCALITY_GROUPS; }### Answer:
@Test public void testConfigureShardTable() throws AccumuloSecurityException, AccumuloException, TableNotFoundException { ShardTableConfigHelperTest.logger.info("ShardTableConfigHelperTest.testConfigureShardTable called."); try { Configuration config = createMockConfiguration(); Logger log = createMockLogger(); TableOperations tops = mockUpTableOperations(); ShardTableConfigHelper uut = new ShardTableConfigHelper(); this.configuration.put(ShardedDataTypeHandler.SHARD_TNAME, ShardTableConfigHelperTest.TABLE_NAME); this.tableProperties.clear(); this.localityGroups.clear(); uut.setup(ShardTableConfigHelperTest.TABLE_NAME, config, log); ShardTableType expectedTableType = ShardTableType.SHARD; Assert.assertEquals("ShardTableConfigHelper.setup incorrectly identified the ShardTableType of the table identified", expectedTableType, uut.tableType); uut.configure(tops); Assert.assertFalse("ShardTableConfigHelper.configureShardTable failed to populate the Table Properties collection.", this.tableProperties.isEmpty()); Assert.assertFalse("ShardTableConfigHelper.configureShardTable failed to populate the Locality Groups collection.", this.localityGroups.isEmpty()); uut = new ShardTableConfigHelper(); this.configuration.put(ShardedDataTypeHandler.SHARD_TNAME, ShardTableConfigHelperTest.TABLE_NAME); this.configuration.put(ShardTableConfigHelper.ENABLE_BLOOM_FILTERS, "true"); this.tableProperties.clear(); this.localityGroups.clear(); uut.setup(ShardTableConfigHelperTest.TABLE_NAME, config, log); expectedTableType = ShardTableType.SHARD; Assert.assertEquals("ShardTableConfigHelper.setup incorrectly identified the ShardTableType of the table identified", expectedTableType, uut.tableType); uut.configure(tops); Assert.assertFalse("ShardTableConfigHelper.configureShardTable failed to populate the Table Properties collection.", this.tableProperties.isEmpty()); Assert.assertFalse("ShardTableConfigHelper.configureShardTable failed to populae the Locality Groups collection.", this.localityGroups.isEmpty()); } finally { ShardTableConfigHelperTest.logger.info("ShardTableConfigHelperTest.testConfigureShardTable completed."); } }