package systems.composable.dropwizard.cassandra.loadbalancing; import com.datastax.driver.core.policies.ErrorAwarePolicy; import com.datastax.driver.core.policies.LoadBalancingPolicy; import io.dropwizard.util.Duration; import org.junit.Before; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class ErrorAwarePolicyFactoryTest { private final LoadBalancingPolicyFactory subPolicyFactory = mock(LoadBalancingPolicyFactory.class); private final LoadBalancingPolicy subPolicy = mock(LoadBalancingPolicy.class); @Before public void setUp() throws Exception { when(subPolicyFactory.build()).thenReturn(subPolicy); } @Test public void buildsPolicyWithChildPolicy() throws Exception { final ErrorAwarePolicyFactory factory = new ErrorAwarePolicyFactory(); factory.setSubPolicy(subPolicyFactory); factory.setMaxErrorsPerMinute(5); factory.setRetryPeriod(Duration.days(7)); final ErrorAwarePolicy policy = (ErrorAwarePolicy) factory.build(); assertThat(policy.getChildPolicy()).isSameAs(subPolicy); } }