blob: 4468ee05edf82fea01b100e40897da1880c8e4bf [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockitousage.misuse;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.exceptions.misusing.MissingMethodInvocationException;
import org.mockito.exceptions.misusing.UnfinishedVerificationException;
import org.mockitoutil.TestBase;
import static junit.framework.TestCase.fail;
import static org.junit.Assume.assumeTrue;
import static org.mockito.Mockito.*;
public class DetectingFinalMethodsTest extends TestBase {
class WithFinal {
final int foo() {
return 0;
}
}
@Mock private WithFinal withFinal;
@Test
public void shouldFailWithUnfinishedVerification() {
assumeTrue("Does not apply for inline mocks", withFinal.getClass() != WithFinal.class);
verify(withFinal).foo();
try {
verify(withFinal).foo();
fail();
} catch (UnfinishedVerificationException e) {}
}
@Test
public void shouldFailWithUnfinishedStubbing() {
assumeTrue("Does not apply for inline mocks", withFinal.getClass() != WithFinal.class);
withFinal = mock(WithFinal.class);
try {
when(withFinal.foo()).thenReturn(null);
fail();
} catch (MissingMethodInvocationException e) {}
}
}