package org.infinispan.server.hotrod;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.k;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.serverPort;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.startHotRodServer;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.v;
import static org.testng.AssertJUnit.assertNull;
import java.lang.reflect.Method;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.server.hotrod.test.HotRodClient;
import org.infinispan.server.hotrod.test.TestErrorResponse;
import org.testng.annotations.Test;
/**
* Tests idle timeout logic in Hot Rod.
*
* @author Galder ZamarreƱo
* @since 4.1
*/
@Test(groups = "functional", testName = "server.hotrod.HotRodIdleTimeoutTest")
public class HotRodIdleTimeoutTest extends HotRodSingleNodeTest {
@Override
protected HotRodServer createStartHotRodServer(EmbeddedCacheManager cacheManager) {
return startHotRodServer(cacheManager, serverPort(), 5);
}
@Override
protected HotRodClient connectClient() {
return new HotRodClient("127.0.0.1", server().getPort(), cacheName, 10, (byte) 20);
}
public void testSendPartialRequest(Method m) {
client().assertPut(m);
TestErrorResponse resp = client().executePartial(0xA0, (byte) 0x03, cacheName, k(m), 0, 0, v(m), 0);
assertNull(resp); // No response received within expected timeout.
client().assertPutFail(m);
shutdownClient();
HotRodClient newClient = connectClient();
try {
newClient.assertPut(m);
} finally {
shutdownClient();
}
}
}