ConditionalStackTraceFilterTest.java revision 2637d96c202372854a7c71466ddcc6e90fc4fc53
1/*
2 * Copyright (c) 2007 Mockito contributors
3 * This program is made available under the terms of the MIT License.
4 */
5package org.mockito.internal.exceptions.stacktrace;
6
7import org.assertj.core.api.Assertions;
8import org.junit.Test;
9import org.mockito.exceptions.base.TraceBuilder;
10import org.mockito.internal.configuration.ConfigurationAccess;
11import org.mockitoutil.TestBase;
12
13import static org.mockitoutil.Conditions.onlyThoseClassesInStackTrace;
14
15public class ConditionalStackTraceFilterTest extends TestBase {
16
17    private ConditionalStackTraceFilter filter = new ConditionalStackTraceFilter();
18
19    @Test
20    public void shouldNotFilterWhenConfigurationSaysNo() {
21        ConfigurationAccess.getConfig().overrideCleansStackTrace(false);
22
23        Throwable t = new TraceBuilder().classes(
24                "org.test.MockitoSampleTest",
25                "org.mockito.Mockito"
26        ).toThrowable();
27
28        filter.filter(t);
29
30        Assertions.assertThat(t).has(onlyThoseClassesInStackTrace("org.mockito.Mockito", "org.test.MockitoSampleTest"));
31    }
32
33    @Test
34    public void shouldFilterWhenConfigurationSaysYes() {
35        ConfigurationAccess.getConfig().overrideCleansStackTrace(true);
36
37        Throwable t = new TraceBuilder().classes(
38                "org.test.MockitoSampleTest",
39                "org.mockito.Mockito"
40        ).toThrowable();
41
42        filter.filter(t);
43
44        Assertions.assertThat(t).has(onlyThoseClassesInStackTrace("org.test.MockitoSampleTest"));
45    }
46}
47