| /* |
| * Copyright (c) 2007 Mockito contributors |
| * This program is made available under the terms of the MIT License. |
| */ |
| |
| package org.mockitousage.misuse; |
| |
| import org.junit.After; |
| import org.junit.Test; |
| import org.mockito.InOrder; |
| import org.mockito.Mock; |
| import org.mockito.exceptions.base.MockitoException; |
| import org.mockitoutil.TestBase; |
| |
| import java.util.List; |
| |
| import static junit.framework.TestCase.fail; |
| import static org.assertj.core.api.Assertions.assertThat; |
| import static org.mockito.Mockito.inOrder; |
| import static org.mockito.Mockito.verify; |
| |
| public class RestrictedObjectMethodsTest extends TestBase { |
| |
| @Mock List<?> mock; |
| |
| @After |
| public void after() { |
| this.resetState(); |
| } |
| |
| @Test |
| public void shouldScreamWhenVerifyToString() { |
| try { |
| verify(mock).toString(); |
| fail(); |
| } catch (MockitoException e) { |
| assertThat(e).hasMessageContaining("cannot verify"); |
| } |
| } |
| |
| @Test |
| public void shouldBeSilentWhenVerifyHashCode() { |
| //because it leads to really wierd behavior sometimes |
| //it's because cglib & my code can occasionelly call those methods |
| // and when user has verification started at that time there will be a mess |
| verify(mock).hashCode(); |
| } |
| |
| @Test |
| public void shouldBeSilentWhenVerifyEquals() { |
| //because it leads to really wierd behavior sometimes |
| //it's because cglib & my code can occasionelly call those methods |
| // and when user has verification started at that time there will be a mess |
| verify(mock).equals(null); |
| } |
| |
| @Test |
| public void shouldBeSilentWhenVerifyEqualsInOrder() { |
| //because it leads to really wierd behavior sometimes |
| //it's because cglib & my code can occasionelly call those methods |
| // and when user has verification started at that time there will be a mess |
| InOrder inOrder = inOrder(mock); |
| inOrder.verify(mock).equals(null); |
| } |
| } |