package org.radargun.stages.cache.test.legacy; import java.util.ArrayList; import java.util.List; import org.radargun.DistStageAck; import org.radargun.StageResult; import org.radargun.stages.cache.generators.ByteArrayValueGenerator; import org.radargun.stages.cache.generators.KeyGenerator; import org.radargun.stages.cache.generators.StringKeyGenerator; import org.radargun.stages.cache.generators.ValueGenerator; import org.radargun.stages.cache.test.BasicOperationsTestStage; import org.radargun.stages.cache.test.ConcurrentKeysSelector; import org.radargun.stages.cache.test.KeySelectorFactory; import org.radargun.stages.helpers.CacheSelector; import org.radargun.state.SlaveState; import org.radargun.traits.BasicOperations; import org.radargun.traits.Lifecycle; import org.radargun.util.CacheStageRunner; import org.radargun.util.CacheTraitRepository; import org.radargun.utils.Utils; import org.testng.Assert; import org.testng.annotations.Test; /** * @author Matej Cimbora */ @Test(timeOut = 30000) public class BasicOperationsCacheTestStageTest { public void smokeTest() throws Exception { CacheStageRunner stageRunner = new CacheStageRunner(1); SlaveState slaveState = stageRunner.getSlaveState(); slaveState.put(KeyGenerator.KEY_GENERATOR, new StringKeyGenerator()); slaveState.put(ValueGenerator.VALUE_GENERATOR, new ByteArrayValueGenerator()); slaveState.put(CacheSelector.CACHE_SELECTOR, new CacheSelector.Default()); Lifecycle lifecycle = stageRunner.getTraitImpl(Lifecycle.class); lifecycle.start(); BasicOperationsTestStage basicOperationsLegacyTestStage = new BasicOperationsTestStage(); KeySelectorFactory keySelectorFactory = new ConcurrentKeysSelector.Factory(); Utils.setField(ConcurrentKeysSelector.Factory.class, "totalEntries", keySelectorFactory, 100); Utils.setField(BasicOperationsTestStage.class, "keySelectorFactory", basicOperationsLegacyTestStage, keySelectorFactory); Utils.setField(BasicOperationsTestStage.class, "duration", basicOperationsLegacyTestStage, 3000); Utils.setField(BasicOperationsTestStage.class, "totalThreads", basicOperationsLegacyTestStage, 10); BasicOperations basicOperations = stageRunner.getTraitImpl(BasicOperations.class); CacheTraitRepository.BasicOperationsCache cache = (CacheTraitRepository.BasicOperationsCache) basicOperations.getCache(null); Assert.assertEquals(cache.size(), 0); List<DistStageAck> acks = new ArrayList<>(1); long start = System.currentTimeMillis(); acks.add(stageRunner.executeOnSlave(basicOperationsLegacyTestStage, 0)); long end = System.currentTimeMillis(); Assert.assertTrue(end - start >= 3000); Assert.assertTrue(cache.size() > 0); Assert.assertEquals(stageRunner.processAckOnMaster(basicOperationsLegacyTestStage, acks), StageResult.SUCCESS); } }