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 Parkinsonpackage org.mockito.internal.exceptions.util;
6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.util.List;
8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.exceptions.VerificationAwareInvocation;
10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic class ScenarioPrinter {
12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public String print(List<VerificationAwareInvocation> invocations) {
14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        if (invocations.size() == 1) {
15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson            return "Actually, above is the only interaction with this mock.";
16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        }
17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        StringBuilder sb = new StringBuilder(
18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson                "***\n" +
19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson                "For your reference, here is the list of all invocations ([?] - means unverified).\n");
20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        int counter = 0;
22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        for (VerificationAwareInvocation i : invocations) {
23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson            sb.append(++counter + ". ");
24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson            if (!i.isVerified()) {
25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson                sb.append("[?]");
26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson            }
27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson            sb.append(i.getLocation() + "\n");
28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        }
29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        String scenario = sb.toString();
30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return scenario;
31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}
34