Mockito quando / então não retorna o valor esperado

Estou tentando stub esse método getKeyFromStream, usando os 'any' matchers. Tentei ser mais explícito e menos explícito (anyObject ()), mas parece que não importa o que eu tente, esse stub não retornará o fooKey no meu teste de unidade.

Gostaria de saber se é porque está protegido ou há algo mais que estou ausente ou fazendo incorretamente. Eu tenho outras instruções quando / então ao longo dos testes queestão trabalhando mas por alguma razão aqui, não é.

Nota: O getKeyFromStream geralmente usa um byteArrayInputStream, mas estou tentando combiná-lo com um InputStream, tentei os dois sem sucesso.

public class FooKeyRetriever() //Mocked this guy
{
    public FooKey getKey(String keyName) throws KeyException {

        return getKeyFromStream(getKeyStream(keyName, false), keyName);
    }

    //Stubbed this method to return a key object which has been mocked
    protected FooKey getKeyFromStream(InputStream keyStream, String keyName){
        //Some code
        return fooKey;
    }
}

Teste de unidade

@Mock
private FooKeyRetriever mockKeyRetriever;

@Mock
private FooKey fooKey;

@Before
public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
}

@Test
public void testGetFooKey() throws Exception {



    when(foo.getKeyFromStream(any(InputStream.class),any(String.class))).thenReturn(fooKey);

    FooKey fooKey = mockKeyRetriever.getKey("irrelevant_key");

    assertNotNull(fooKey);
}

questionAnswers(1)

yourAnswerToTheQuestion