Home | History | Annotate | Download | only in verification
      1 /*
      2  * Copyright (c) 2007 Mockito contributors
      3  * This program is made available under the terms of the MIT License.
      4  */
      5 
      6 package org.mockitousage.verification;
      7 
      8 import org.junit.Test;
      9 import org.mockito.Mock;
     10 import org.mockito.Mockito;
     11 import org.mockito.exceptions.verification.TooLittleActualInvocations;
     12 import org.mockito.exceptions.verification.TooManyActualInvocations;
     13 import org.mockitoutil.TestBase;
     14 
     15 import java.util.LinkedList;
     16 
     17 import static junit.framework.TestCase.fail;
     18 import static org.assertj.core.api.Assertions.assertThat;
     19 import static org.mockito.Mockito.times;
     20 
     21 @SuppressWarnings("unchecked")
     22 public class DescriptiveMessagesWhenTimesXVerificationFailsTest extends TestBase {
     23 
     24     @Mock private LinkedList mock;
     25 
     26     @Test
     27     public void shouldVerifyActualNumberOfInvocationsSmallerThanWanted() throws Exception {
     28         mock.clear();
     29         mock.clear();
     30         mock.clear();
     31 
     32         Mockito.verify(mock, times(3)).clear();
     33         try {
     34             Mockito.verify(mock, times(100)).clear();
     35             fail();
     36         } catch (TooLittleActualInvocations e) {
     37             assertThat(e)
     38                 .hasMessageContaining("mock.clear();")
     39                 .hasMessageContaining("Wanted 100 times")
     40                 .hasMessageContaining("was 3");
     41         }
     42     }
     43 
     44     @Test
     45     public void shouldVerifyActualNumberOfInvocationsLargerThanWanted() throws Exception {
     46         mock.clear();
     47         mock.clear();
     48         mock.clear();
     49         mock.clear();
     50 
     51         Mockito.verify(mock, times(4)).clear();
     52         try {
     53             Mockito.verify(mock, times(1)).clear();
     54             fail();
     55         } catch (TooManyActualInvocations e) {
     56             assertThat(e)
     57                 .hasMessageContaining("mock.clear();")
     58                 .hasMessageContaining("Wanted 1 time")
     59                 .hasMessageContaining("was 4");
     60         }
     61     }
     62 }
     63