package org.mockito.internal.verification;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.exceptions.base.MockitoAssertionError;
import org.mockito.internal.verification.api.VerificationData;
import org.mockito.verification.VerificationMode;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.fail;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.verify;
import static org.mockito.MockitoAnnotations.initMocks;
public class DescriptionTest {
@Mock
private VerificationMode mockVerificationMode;
@Mock
private VerificationData mockVerificationData;
@Before
public void setUp() {
initMocks(this);
}
/**
* Test of verify method, of class Description. This test validates that the custom message is prepended to the
* error message when verification fails.
*/
@Test
public void verification_failure_should_prepend_expected_message() {
String failureMessage = "message should be prepended to the original message";
String exceptionMessage = "original error message";
String expectedResult = failureMessage + "\n" + exceptionMessage;
MockitoAssertionError error = new MockitoAssertionError(exceptionMessage);
doThrow(error).when(mockVerificationMode).verify(mockVerificationData);
Description instance = new Description(mockVerificationMode, failureMessage);
try {
instance.verify(mockVerificationData);
verify(mockVerificationMode).verify(mockVerificationData);
fail("Should not have made it this far");
} catch (MockitoAssertionError e) {
assertEquals(expectedResult, e.getMessage());
}
}
}