1/*
2 * Copyright (c) 2007 Mockito contributors
3 * This program is made available under the terms of the MIT License.
4 */
5
6package org.mockito.exceptions.base;
7
8import org.junit.Test;
9import org.mockito.internal.configuration.ConfigurationAccess;
10
11import java.util.Arrays;
12
13import static org.assertj.core.api.Assertions.assertThat;
14
15public class MockitoSerializationIssueTest {
16
17    @Test
18    public void should_filter_out_test_class_from_stacktrace_when_clean_flag_is_true() {
19        // given
20        ConfigurationAccess.getConfig().overrideCleansStackTrace(true);
21
22        // when
23        MockitoSerializationIssue issue = new MockitoSerializationIssue("msg", new Exception("cause"));
24
25        // then
26        assertThat(Arrays.toString(issue.getUnfilteredStackTrace())).contains("MockitoSerializationIssueTest");
27        assertThat(Arrays.toString(issue.getStackTrace())).doesNotContain("MockitoSerializationIssueTest");
28    }
29
30    @Test
31    public void should_keep_executing_class_in_stacktrace_when_clean_flag_is_false() {
32        // given
33        ConfigurationAccess.getConfig().overrideCleansStackTrace(false);
34
35        // when
36        MockitoSerializationIssue issue = new MockitoSerializationIssue("msg", new Exception("cause"));
37
38        // then
39        assertThat(Arrays.toString(issue.getUnfilteredStackTrace())).contains("MockitoSerializationIssueTest");
40        assertThat(Arrays.toString(issue.getStackTrace())).contains("MockitoSerializationIssueTest");
41    }
42}
43