Home | History | Annotate | Download | only in stacktrace
      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.stacktrace;
      7 
      8 import org.junit.Before;
      9 import org.junit.Test;
     10 import org.junit.runner.RunWith;
     11 import org.mockito.Mock;
     12 import org.mockito.exceptions.verification.NeverWantedButInvoked;
     13 import org.mockito.junit.MockitoJUnitRunner;
     14 import org.mockitousage.IMethods;
     15 import org.mockitoutil.TestBase;
     16 
     17 import static org.junit.Assert.fail;
     18 import static org.assertj.core.api.Assertions.assertThat;
     19 import static org.mockito.Mockito.times;
     20 import static org.mockito.Mockito.verify;
     21 
     22 //This is required to make sure stack trace is well filtered when runner is ON
     23 @RunWith(MockitoJUnitRunner.class)
     24 public class PointingStackTraceToActualInvocationTest extends TestBase {
     25 
     26     @Mock private IMethods mock;
     27     @Mock private IMethods mockTwo;
     28 
     29     @Before
     30     public void setup() {
     31         first();
     32         second();
     33         third();
     34         fourth();
     35     }
     36 
     37     private void first() {
     38         mock.simpleMethod(1);
     39     }
     40     private void second() {
     41         mockTwo.simpleMethod(2);
     42     }
     43     private void third() {
     44         mock.simpleMethod(3);
     45     }
     46     private void fourth() {
     47         mockTwo.simpleMethod(4);
     48     }
     49 
     50     @Test
     51     public void shouldPointToTooManyInvocationsChunkOnError() {
     52         try {
     53             verify(mock, times(0)).simpleMethod(1);
     54             fail();
     55         } catch (NeverWantedButInvoked e) {
     56             assertThat(e).hasMessageContaining("first(");
     57         }
     58     }
     59 
     60     @Test
     61     public void shouldNotPointStackTracesToRunnersCode() {
     62         try {
     63             verify(mock, times(0)).simpleMethod(1);
     64             fail();
     65         } catch (NeverWantedButInvoked e) {
     66             assertThat(e.getMessage()).doesNotContain(".runners.");
     67         }
     68     }
     69 }
     70