| package org.mockitousage.bugs; |
| |
| import org.junit.Test; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| import static org.mockito.Mockito.spy; |
| |
| public class ImplementationOfGenericAbstractMethodNotInvokedOnSpyTest { |
| public abstract class GenericAbstract<T> { |
| protected abstract String method_to_implement(T value); |
| |
| public String public_method(T value) { |
| return method_to_implement(value); |
| } |
| } |
| |
| public class ImplementsGenericMethodOfAbstract<T extends Number> extends GenericAbstract<T> { |
| @Override |
| protected String method_to_implement(T value) { |
| return "concrete value"; |
| } |
| } |
| |
| @Test |
| public void should_invoke_method_to_implement() { |
| GenericAbstract<Number> spy = spy(new ImplementsGenericMethodOfAbstract<Number>()); |
| |
| assertThat(spy.public_method(73L)).isEqualTo("concrete value"); |
| } |
| } |