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.debugging;
6
7import java.util.List;
8
9import org.mockito.internal.invocation.InvocationMatcher;
10import org.mockito.internal.util.MockitoLogger;
11import org.mockito.internal.util.SimpleMockitoLogger;
12import org.mockito.invocation.Invocation;
13
14public class WarningsPrinterImpl {
15
16    private final boolean warnAboutUnstubbed;
17    private WarningsFinder finder;
18
19    public WarningsPrinterImpl(List<Invocation> unusedStubs, List<InvocationMatcher> unstubbedInvocations) {
20        this(unusedStubs, unstubbedInvocations, false);
21    }
22
23    public WarningsPrinterImpl(List<Invocation> unusedStubs, List<InvocationMatcher> allInvocations, boolean warnAboutUnstubbed) {
24        this(warnAboutUnstubbed, new WarningsFinder(unusedStubs, allInvocations));
25    }
26
27    WarningsPrinterImpl(boolean warnAboutUnstubbed, WarningsFinder finder) {
28        this.warnAboutUnstubbed = warnAboutUnstubbed;
29        this.finder = finder;
30    }
31
32    public void print(final MockitoLogger logger) {
33        finder.find(new LoggingListener(warnAboutUnstubbed, logger));
34    }
35
36    public String print() {
37        SimpleMockitoLogger logger = new SimpleMockitoLogger();
38        this.print(logger);
39        return logger.getLoggedInfo();
40    }
41}