package com.tacitknowledge.slowlight.proxyserver.systest; import com.google.common.collect.Lists; import com.tacitknowledge.slowlight.proxyserver.config.HandlerConfig; import com.tacitknowledge.slowlight.proxyserver.handler.RandomDataChannelHandler; import com.tacitknowledge.slowlight.proxyserver.systest.util.client.TestClient; import org.junit.Test; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; /** * @author Alexandr Donciu (adonciu@tacitknowledge.com) */ public class RandomDataProxyServerIT extends AbstractProxyServerIT { @Test public void proxyServerShouldGenerateRandomDataBySpecifiedParams() throws Throwable { createProxyServer(createRandomDataHandlerConfig(3, 5)); final TestClient client = createClient(15); final String request = "1234567890"; final List<byte[]> responseBytesList = client.sendMessage(request); final String response = convertResponseToString(responseBytesList); assertThat(response.length(), is(equalTo(15))); } private List<HandlerConfig> createRandomDataHandlerConfig(final int dataFragments, final int dataFragmentSize) { final HandlerConfig randomDataHandlerConfig = new HandlerConfig(); randomDataHandlerConfig.setName("randomDataHandler"); randomDataHandlerConfig.setType(RandomDataChannelHandler.class.getName()); final Map<String, String> handlerParam = new HashMap<String, String>() {{ put("dataFragments", Integer.toString(dataFragments)); put("dataFragmentSize", Integer.toString(dataFragmentSize)); }}; randomDataHandlerConfig.setParams(handlerParam); return Lists.newArrayList(randomDataHandlerConfig); } }