content: package redis.clients.jedis.tests;
  
  import org.junit.After;
  import org.junit.Assert;
  import org.junit.Before;
  import org.junit.Test;
  
  import redis.clients.jedis.Connection;
  import redis.clients.jedis.Protocol.Command;
  import redis.clients.jedis.commands.ProtocolCommand;
  import redis.clients.jedis.exceptions.JedisConnectionException;
  
  public class ConnectionTest extends Assert {
    private Connection client;
  
    @Before
    public void setUp() throws Exception {
      client = new Connection();
    }
  
    @After
    public void tearDown() throws Exception {
      client.disconnect();
    }
  
    @Test(expected = JedisConnectionException.class)
    public void checkUnkownHost() {
      client.setHost("someunknownhost");
      client.connect();
    }
  
    @Test(expected = JedisConnectionException.class)
    public void checkWrongPort() {
      client.setHost("localhost");
      client.setPort(55665);
      client.connect();
    }
  
    @Test
    public void connectIfNotConnectedWhenSettingTimeoutInfinite() {
      client.setHost("localhost");
      client.setPort(6379);
      client.setTimeoutInfinite();
    }
  
    @Test
    public void checkCloseable() {
      client.setHost("localhost");
      client.setPort(6379);
      client.connect();
      client.close();
    }
  
    @Test
    public void getErrorAfterConnectionReset() throws Exception {
      class TestConnection extends Connection {
        public TestConnection() {
          super("localhost", 6379);
        }
  
        @Override
        protected Connection sendCommand(ProtocolCommand cmd, byte[]... args) {
          return super.sendCommand(cmd, args);
        }
      }
  
      TestConnection conn = new TestConnection();
  
      try {
        conn.sendCommand(Command.HMSET, new byte[1024 * 1024 + 1][0]);
        fail("Should throw exception");
      } catch (JedisConnectionException jce) {
        assertEquals("ERR Protocol error: invalid multibulk length", jce.getMessage());
      }
    }
  }
  