1 /* 2 * Copyright (c) 2017 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockitousage.basicapi; 6 7 import static org.assertj.core.api.Assertions.assertThatThrownBy; 8 import static org.junit.Assert.assertEquals; 9 import static org.mockito.Mockito.clearInvocations; 10 import static org.mockito.Mockito.verify; 11 import static org.mockito.Mockito.verifyNoMoreInteractions; 12 import static org.mockito.Mockito.when; 13 14 import org.junit.Test; 15 import org.mockito.Mock; 16 import org.mockito.exceptions.misusing.NotAMockException; 17 import org.mockitousage.IMethods; 18 import org.mockitoutil.TestBase; 19 20 public class ResetInvocationsTest extends TestBase { 21 22 @Mock IMethods methods; 23 24 @Mock IMethods moarMethods; 25 26 @Test reset_invocations_should_reset_only_invocations()27 public void reset_invocations_should_reset_only_invocations() { 28 when(methods.simpleMethod()).thenReturn("return"); 29 30 methods.simpleMethod(); 31 verify(methods).simpleMethod(); 32 33 clearInvocations(methods); 34 35 verifyNoMoreInteractions(methods); 36 assertEquals("return", methods.simpleMethod()); 37 } 38 39 @Test should_reset_invocations_on_multiple_mocks()40 public void should_reset_invocations_on_multiple_mocks() { 41 methods.simpleMethod(); 42 moarMethods.simpleMethod(); 43 44 clearInvocations(methods, moarMethods); 45 46 verifyNoMoreInteractions(methods, moarMethods); 47 } 48 49 @Test resettingNonMockIsSafe()50 public void resettingNonMockIsSafe() { 51 assertThatThrownBy( 52 () -> { 53 clearInvocations(""); 54 }) 55 .isInstanceOf(NotAMockException.class) 56 .hasMessage("Argument should be a mock, but is: class java.lang.String"); 57 } 58 59 @Test resettingNullIsSafe()60 public void resettingNullIsSafe() { 61 assertThatThrownBy( 62 () -> { 63 clearInvocations(new Object[] {null}); 64 }) 65 .isInstanceOf(NotAMockException.class) 66 .hasMessage("Argument should be a mock, but is null!"); 67 } 68 } 69