PowerMocking estática no devuelve el objeto esperado

Tengo un problema burlónCalendar.getInstance(). Como ahora, este método devuelve un calendario: el objeto del que me estoy burlando.

En este momento mi código se ve así:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Calendar.class)
public class SurveillanceDatabaseTest {
    @Test
    public void testFailingDatabase() throws Exception {
        mockStatic(Calendar.class);
        Calendar calendar = new GregorianCalendar();
        calendar.add(Calendar.HOUR, 1);
        when(Calendar.getInstance()).thenReturn(calendar);
        final Surveillance surveillance = new Surveillance();
        surveillance.checkDatabase();
   }
}

Calendar.getInstance() es llamado varias veces ensurveillance.checkDatabase() y cada vez es un nuevo objeto y no el simulacro esperado del calendario.

¿Alguien puede ver lo que estoy haciendo mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta