// Path: src/main/java/com/yammer/httptunnel/client/HttpTunnelClientChannelConfig.java
// public class HttpTunnelClientChannelConfig extends HttpTunnelChannelConfig {
// 	private static final InternalLogger LOG = InternalLoggerFactory.getInstance(HttpTunnelClientChannelConfig.class);
// 
// 	/**
// 	 * The default user-agent used for HTTP tunnel requests.
// 	 */
// 	public static final String DEFAULT_USER_AGENT = "HttpTunnel";
// 
// 	static final String USER_AGENT_OPTION = "userAgent";
// 
// 	private static final String PROP_PKG = "org.jboss.netty.channel.socket.http.";
// 
// 	private static final String PROP_UserAgent = PROP_PKG + USER_AGENT_OPTION;
// 
// 	private final SocketChannelConfig sendChannelConfig;
// 	private final SocketChannelConfig pollChannelConfig;
// 
// 	private String userAgent;
// 
// 	HttpTunnelClientChannelConfig(SocketChannelConfig sendChannelConfig, SocketChannelConfig pollChannelConfig) {
// 		this.sendChannelConfig = sendChannelConfig;
// 		this.pollChannelConfig = pollChannelConfig;
// 
// 		userAgent = System.getProperty(PROP_UserAgent, DEFAULT_USER_AGENT);
// 	}
// 
// 	public String getUserAgent() {
// 		return userAgent;
// 	}
// 
// 	public void setUserAgent(String userAgent) {
// 		this.userAgent = userAgent;
// 	}
// 
// 	/* HTTP TUNNEL SPECIFIC CONFIGURATION */
// 	// TODO Support all options in the old tunnel (see
// 	// HttpTunnelingSocketChannelConfig)
// 	// Mostly SSL, virtual host, and URL prefix
// 	@Override
// 	public boolean setOption(String key, Object value) {
// 		if (USER_AGENT_OPTION.equalsIgnoreCase(key)) {
// 			this.setUserAgent((String) value);
// 			return true;
// 		}
// 
// 		return super.setOption(key, value);
// 	}
// 
// 	/* GENERIC SOCKET CHANNEL CONFIGURATION */
// 
// 	@Override
// 	public int getReceiveBufferSize() {
// 		return pollChannelConfig.getReceiveBufferSize();
// 	}
// 
// 	@Override
// 	public void setReceiveBufferSize(int receiveBufferSize) {
// 		pollChannelConfig.setReceiveBufferSize(receiveBufferSize);
// 		sendChannelConfig.setReceiveBufferSize(receiveBufferSize);
// 	}
// 
// 	@Override
// 	public int getSendBufferSize() {
// 		return pollChannelConfig.getSendBufferSize();
// 	}
// 
// 	@Override
// 	public void setSendBufferSize(int sendBufferSize) {
// 		pollChannelConfig.setSendBufferSize(sendBufferSize);
// 		sendChannelConfig.setSendBufferSize(sendBufferSize);
// 	}
// 
// 	@Override
// 	public int getSoLinger() {
// 		return pollChannelConfig.getSoLinger();
// 	}
// 
// 	@Override
// 	public void setSoLinger(int soLinger) {
// 		pollChannelConfig.setSoLinger(soLinger);
// 		sendChannelConfig.setSoLinger(soLinger);
// 	}
// 
// 	@Override
// 	public int getTrafficClass() {
// 		return pollChannelConfig.getTrafficClass();
// 	}
// 
// 	@Override
// 	public void setTrafficClass(int trafficClass) {
// 		pollChannelConfig.setTrafficClass(1);
// 		sendChannelConfig.setTrafficClass(1);
// 	}
// 
// 	@Override
// 	public boolean isKeepAlive() {
// 		return pollChannelConfig.isKeepAlive();
// 	}
// 
// 	@Override
// 	public void setKeepAlive(boolean keepAlive) {
// 		pollChannelConfig.setKeepAlive(keepAlive);
// 		sendChannelConfig.setKeepAlive(keepAlive);
// 	}
// 
// 	@Override
// 	public boolean isReuseAddress() {
// 		return pollChannelConfig.isReuseAddress();
// 	}
// 
// 	@Override
// 	public void setReuseAddress(boolean reuseAddress) {
// 		pollChannelConfig.setReuseAddress(reuseAddress);
// 		sendChannelConfig.setReuseAddress(reuseAddress);
// 	}
// 
// 	@Override
// 	public boolean isTcpNoDelay() {
// 		return pollChannelConfig.isTcpNoDelay();
// 	}
// 
// 	@Override
// 	public void setTcpNoDelay(boolean tcpNoDelay) {
// 		pollChannelConfig.setTcpNoDelay(true);
// 		sendChannelConfig.setTcpNoDelay(true);
// 	}
// 
// 	@Override
// 	public void setPerformancePreferences(int connectionTime, int latency, int bandwidth) {
// 		pollChannelConfig.setPerformancePreferences(connectionTime, latency, bandwidth);
// 		sendChannelConfig.setPerformancePreferences(connectionTime, latency, bandwidth);
// 	}
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.jboss.netty.channel.socket.SocketChannelConfig;
import org.jmock.Expectations;
import org.jmock.integration.junit4.JMock;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.yammer.httptunnel.client.HttpTunnelClientChannelConfig;

		assertTrue(config.isKeepAlive());
	}

	@Test
	public void testIsReuseAddress() {
		mockContext.checking(new Expectations() {
			{
				one(pollChannelConfig).isReuseAddress();
				will(returnValue(true));
			}
		});

		assertTrue(config.isReuseAddress());
	}

	@Test
	public void testIsTcpNoDelay() {
		mockContext.checking(new Expectations() {
			{
				one(pollChannelConfig).isTcpNoDelay();
				will(returnValue(true));
			}
		});

		assertTrue(config.isTcpNoDelay());
	}

	@Test
	public void testSetKeepAlive() {
// Path: src/main/java/com/yammer/httptunnel/client/HttpTunnelClientChannelConfig.java
// public class HttpTunnelClientChannelConfig extends HttpTunnelChannelConfig {
// 	private static final InternalLogger LOG = InternalLoggerFactory.getInstance(HttpTunnelClientChannelConfig.class);
// 
// 	/**
// 	 * The default user-agent used for HTTP tunnel requests.
// 	 */
// 	public static final String DEFAULT_USER_AGENT = "HttpTunnel";
// 
// 	static final String USER_AGENT_OPTION = "userAgent";
// 
// 	private static final String PROP_PKG = "org.jboss.netty.channel.socket.http.";
// 
// 	private static final String PROP_UserAgent = PROP_PKG + USER_AGENT_OPTION;
// 
// 	private final SocketChannelConfig sendChannelConfig;
// 	private final SocketChannelConfig pollChannelConfig;
// 
// 	private String userAgent;
// 
// 	HttpTunnelClientChannelConfig(SocketChannelConfig sendChannelConfig, SocketChannelConfig pollChannelConfig) {
// 		this.sendChannelConfig = sendChannelConfig;
// 		this.pollChannelConfig = pollChannelConfig;
// 
// 		userAgent = System.getProperty(PROP_UserAgent, DEFAULT_USER_AGENT);
// 	}
// 
// 	public String getUserAgent() {
// 		return userAgent;
// 	}
// 
// 	public void setUserAgent(String userAgent) {
// 		this.userAgent = userAgent;
// 	}
// 
// 	/* HTTP TUNNEL SPECIFIC CONFIGURATION */
// 	// TODO Support all options in the old tunnel (see
// 	// HttpTunnelingSocketChannelConfig)
// 	// Mostly SSL, virtual host, and URL prefix
// 	@Override
// 	public boolean setOption(String key, Object value) {
// 		if (USER_AGENT_OPTION.equalsIgnoreCase(key)) {
// 			this.setUserAgent((String) value);
// 			return true;
// 		}
// 
// 		return super.setOption(key, value);
// 	}
// 
// 	/* GENERIC SOCKET CHANNEL CONFIGURATION */
// 
// 	@Override
// 	public int getReceiveBufferSize() {
// 		return pollChannelConfig.getReceiveBufferSize();
// 	}
// 
// 	@Override
// 	public void setReceiveBufferSize(int receiveBufferSize) {
// 		pollChannelConfig.setReceiveBufferSize(receiveBufferSize);
// 		sendChannelConfig.setReceiveBufferSize(receiveBufferSize);
// 	}
// 
// 	@Override
// 	public int getSendBufferSize() {
// 		return pollChannelConfig.getSendBufferSize();
// 	}
// 
// 	@Override
// 	public void setSendBufferSize(int sendBufferSize) {
// 		pollChannelConfig.setSendBufferSize(sendBufferSize);
// 		sendChannelConfig.setSendBufferSize(sendBufferSize);
// 	}
// 
// 	@Override
// 	public int getSoLinger() {
// 		return pollChannelConfig.getSoLinger();
// 	}
// 
// 	@Override
// 	public void setSoLinger(int soLinger) {
// 		pollChannelConfig.setSoLinger(soLinger);
// 		sendChannelConfig.setSoLinger(soLinger);
// 	}
// 
// 	@Override
// 	public int getTrafficClass() {
// 		return pollChannelConfig.getTrafficClass();
// 	}
// 
// 	@Override
// 	public void setTrafficClass(int trafficClass) {
// 		pollChannelConfig.setTrafficClass(1);
// 		sendChannelConfig.setTrafficClass(1);
// 	}
// 
// 	@Override
// 	public boolean isKeepAlive() {
// 		return pollChannelConfig.isKeepAlive();
// 	}
// 
// 	@Override
// 	public void setKeepAlive(boolean keepAlive) {
// 		pollChannelConfig.setKeepAlive(keepAlive);
// 		sendChannelConfig.setKeepAlive(keepAlive);
// 	}
// 
// 	@Override
// 	public boolean isReuseAddress() {
// 		return pollChannelConfig.isReuseAddress();
// 	}
// 
// 	@Override
// 	public void setReuseAddress(boolean reuseAddress) {
// 		pollChannelConfig.setReuseAddress(reuseAddress);
// 		sendChannelConfig.setReuseAddress(reuseAddress);
// 	}
// 
// 	@Override
// 	public boolean isTcpNoDelay() {
// 		return pollChannelConfig.isTcpNoDelay();
// 	}
// 
// 	@Override
// 	public void setTcpNoDelay(boolean tcpNoDelay) {
// 		pollChannelConfig.setTcpNoDelay(true);
// 		sendChannelConfig.setTcpNoDelay(true);
// 	}
// 
// 	@Override
// 	public void setPerformancePreferences(int connectionTime, int latency, int bandwidth) {
// 		pollChannelConfig.setPerformancePreferences(connectionTime, latency, bandwidth);
// 		sendChannelConfig.setPerformancePreferences(connectionTime, latency, bandwidth);
// 	}
// }


// Path: src/test/java/com/yammer/httptunnel/client/HttpTunnelClientChannelConfigTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.jboss.netty.channel.socket.SocketChannelConfig;
import org.jmock.Expectations;
import org.jmock.integration.junit4.JMock;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.yammer.httptunnel.client.HttpTunnelClientChannelConfig;


		assertTrue(config.isKeepAlive());
	}

	@Test
	public void testIsReuseAddress() {
		mockContext.checking(new Expectations() {
			{
				one(pollChannelConfig).isReuseAddress();
				will(returnValue(true));
			}
		});

		assertTrue(config.isReuseAddress());
	}

	@Test
	public void testIsTcpNoDelay() {
		mockContext.checking(new Expectations() {
			{
				one(pollChannelConfig).isTcpNoDelay();
				will(returnValue(true));
			}
		});

		assertTrue(config.isTcpNoDelay());
	}

	@Test
	public void testSetKeepAlive() {
		mockContext.checking(new Expectations() {