1 package net.secodo.jcircuitbreaker.breakhandler.impl;
2
3 import net.secodo.jcircuitbreaker.breaker.ContextAwareCircuitBreaker;
4 import net.secodo.jcircuitbreaker.exception.TaskExecutionException;
5 import net.secodo.jcircuitbreaker.task.Task;
6 import org.junit.Test;
7 import net.secodo.jcircuitbreaker.breaker.CircuitBreaker;
8 import net.secodo.jcircuitbreaker.breaker.execution.ExecutionContext;
9 import net.secodo.jcircuitbreaker.breakstrategy.BreakStrategy;
10 import java.util.concurrent.Callable;
11 import static org.hamcrest.CoreMatchers.equalTo;
12 import static org.hamcrest.MatcherAssert.assertThat;
13 import static org.mockito.Mockito.mock;
14
15
16 @SuppressWarnings("unchecked")
17 public class ReturnStaticValueHandlerTest {
18 @Test
19 public void shouldReturnDefinedStaticValueIfExecuted() throws TaskExecutionException {
20
21 final int staticReturnValue = 5;
22 final String paramValue1 = "44444444";
23 final int paramValue2 = 222222;
24
25 final ExecutionContext executionContext = mock(ExecutionContext.class);
26 final ReturnStaticValueHandler<Integer> breakHandler = new ReturnStaticValueHandler<Integer>(staticReturnValue);
27 final ContextAwareCircuitBreaker circuitBreaker = mock(ContextAwareCircuitBreaker.class);
28 final BreakStrategy breakStrategy = mock(BreakStrategy.class);
29 final SomeTestClassWithSomeMethod someTestObject = mock(SomeTestClassWithSomeMethod.class);
30
31
32 Task<Integer> task = () -> someTestObject.someMethod(paramValue1, paramValue2);
33
34
35 final Integer returnedValue = breakHandler.onBreak(circuitBreaker, task, breakStrategy, executionContext);
36
37
38 assertThat(returnedValue, equalTo(staticReturnValue));
39 }
40
41 class SomeTestClassWithSomeMethod {
42 SomeTestClassWithSomeMethod() {
43 }
44
45 public Integer someMethod(String paramValue1, Integer paramValue2) {
46 return 1;
47 }
48
49
50 }
51
52
53 }