package org.arquillian.cube.docker.junit.rule;
import org.arquillian.cube.docker.impl.requirement.RequiresDockerMachine;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.arquillian.cube.requirement.RequirementRule;
import org.arquillian.cube.spi.CubeOutput;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import redis.clients.jedis.Jedis;
import static org.assertj.core.api.Assertions.assertThat;
@RequiresDockerMachine(name = "dev")
public class RedisTest {
@Rule
public RequirementRule requirementRule = new RequirementRule();
@ClassRule
public static ContainerDslRule redis = new ContainerDslRule("redis:3.2.6")
.withPortBinding(6379);
@ClassRule
public static ContainerDslRule redisStar = new ContainerDslRule("redis:3.2.6", "redis*")
.withPortBinding(6379);
@Test
public void should_insert_string_in_redis() {
Jedis jedis = new Jedis(redis.getIpAddress(), redis.getBindPort(6379));
jedis.set("foo", "bar");
assertThat(jedis.get("foo")).isEqualTo("bar");
}
@Test
public void should_get_logs() {
assertThat(redis.getLog())
.isNotBlank()
.contains("Redis");
}
@Test
public void should_execute_uname() {
assertThat(redis.exec("sh", "-c", "uname").getStandard())
.isNotBlank()
.isEqualToIgnoringWhitespace("Linux");
}
@Test
public void should_use_random_port_redis_star() {
assertThat(redisStar.getBindPort(6379)).isNotEqualTo(6379);
}
}