1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/*
2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors
3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License.
4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */
5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.exceptions.verification.junit;
7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
82637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static org.mockito.internal.util.StringUtil.removeFirstLine;
92637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport junit.framework.ComparisonFailure;
11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter;
12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic class ArgumentsAreDifferent extends ComparisonFailure {
152637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    private static final long serialVersionUID = 1L;
17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    private final String message;
18e03a0f42b85425bffd40bcf790819671a7848c1aPaul Duffin    private final StackTraceElement[] unfilteredStackTrace;
19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public ArgumentsAreDifferent(String message, String wanted, String actual) {
21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        super(message, wanted, actual);
22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        this.message = message;
232637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        unfilteredStackTrace = getStackTrace();
25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        ConditionalStackTraceFilter filter = new ConditionalStackTraceFilter();
26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        filter.filter(this);
27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
282637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    @Override
30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public String getMessage() {
31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return message;
32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
332637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public StackTraceElement[] getUnfilteredStackTrace() {
35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return unfilteredStackTrace;
36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
372637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    @Override
39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public String toString() {
402637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        return removeFirstLine(super.toString());
41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
422637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin}
43