Home | History | Annotate | Download | only in bugs
      1 package org.mockitousage.bugs;
      2 
      3 import org.junit.Test;
      4 
      5 import static org.assertj.core.api.Assertions.assertThat;
      6 import static org.mockito.Mockito.spy;
      7 
      8 public class ImplementationOfGenericAbstractMethodNotInvokedOnSpyTest {
      9     public abstract class GenericAbstract<T> {
     10         protected abstract String method_to_implement(T value);
     11 
     12         public String public_method(T value) {
     13             return method_to_implement(value);
     14         }
     15     }
     16 
     17     public class ImplementsGenericMethodOfAbstract<T extends Number> extends GenericAbstract<T> {
     18         @Override
     19         protected String method_to_implement(T value) {
     20             return "concrete value";
     21         }
     22     }
     23 
     24     @Test
     25     public void should_invoke_method_to_implement() {
     26         GenericAbstract<Number> spy = spy(new ImplementsGenericMethodOfAbstract<Number>());
     27 
     28         assertThat(spy.public_method(73L)).isEqualTo("concrete value");
     29     }
     30 }
     31