package org.cloudfoundry.runtime.service.keyvalue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.mockito.Mockito.when; import org.cloudfoundry.runtime.env.CloudEnvironment; import org.cloudfoundry.runtime.env.RedisServiceInfo; import org.cloudfoundry.runtime.service.keyvalue.CloudRedisConnectionFactoryBean; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.jredis.JredisConnectionFactory; public class CloudRedisConnectionFactoryBeanTest { @Mock private CloudEnvironment mockRuntime; @Mock private RedisServiceInfo mockServiceInfo; private CloudRedisConnectionFactoryBean factory; @Before public void setup() { MockitoAnnotations.initMocks(this); factory = new CloudRedisConnectionFactoryBean(mockRuntime); } @Test public void cloudRedisConnectionFactoryCreation() throws Exception { when(mockRuntime.getServiceInfo("redis-1", RedisServiceInfo.class)) .thenReturn(mockServiceInfo); when(mockServiceInfo.getHost()).thenReturn("10.20.30.40"); when(mockServiceInfo.getPort()).thenReturn(10000); when(mockServiceInfo.getPassword()).thenReturn("mypass"); factory.setServiceName("redis-1"); factory.afterPropertiesSet(); RedisConnectionFactory cloudConnectionFactory = factory.getObject(); if (cloudConnectionFactory instanceof JredisConnectionFactory) { assertEquals("10.20.30.40", ((JredisConnectionFactory)cloudConnectionFactory).getHostName()); assertEquals(10000, ((JredisConnectionFactory)cloudConnectionFactory).getPort()); assertEquals("mypass", ((JredisConnectionFactory)cloudConnectionFactory).getPassword()); } else if (cloudConnectionFactory instanceof JedisConnectionFactory) { assertEquals("10.20.30.40", ((JedisConnectionFactory)cloudConnectionFactory).getHostName()); assertEquals(10000, ((JedisConnectionFactory)cloudConnectionFactory).getPort()); assertEquals("mypass", ((JedisConnectionFactory)cloudConnectionFactory).getPassword()); } else { fail(); } } }