• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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