001// Generated by delombok at Fri Mar 03 17:40:07 UTC 2023
002package de.cuioss.test.juli;
003
004import static de.cuioss.test.juli.TestLoggerFactory.getTestHandler;
005import static org.junit.jupiter.api.Assertions.assertEquals;
006import static org.junit.jupiter.api.Assertions.assertNotEquals;
007import static org.junit.jupiter.api.Assertions.assertTrue;
008import java.util.logging.LogRecord;
009import de.cuioss.test.juli.junit5.EnableTestLogger;
010
011/**
012 * Provides a number of asserts against the {@link LogRecord}s gathered by {@link TestLogHandler}.
013 * Caution: In order to use the asserts the {@link TestLogHandler} must be properly configured by
014 * calling {@link TestLoggerFactory#install()} prior to usage. Usually this is done by
015 * {@link EnableTestLogger}
016 *
017 * @author Oliver Wolff
018 */
019public final class LogAsserts {
020    private static final String ALL_LOGS = ", All recorded Logs:\n";
021    private static final String MESSAGE_EXACTLY = " and message is exactly=";
022    private static final String MESSAGE_CONTAINS = " and message containing=";
023    private static final String AND_THROWABLE = " and throwable=";
024    private static final String NO_LOG_MESSAGE_FOUND_WITH_LEVEL = "No log message found with level=";
025    private static final String AT_LEAST_ONE_LOG_MESSAGE_FOUND_WITH_LEVEL = "At least one log message found with level=";
026    private static final String NO_SINGLE_MESSAGE_FOUND_WITH_LEVEL = "Expected one message to be found with level=";
027
028    /**
029     * Asserts whether at least one {@link LogRecord} for the given parameter is present
030     *
031     * @param logLevel to be checked, must not be null
032     * @param message to be checked, must not be null
033     */
034    public static void assertLogMessagePresent(TestLogLevel logLevel, String message) {
035        var testHandler = getTestHandler();
036        var messages = testHandler.resolveLogMessages(logLevel, message);
037        var assertionMessage = NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + message + ALL_LOGS + testHandler.getRecordsAsString();
038        assertNotEquals(0, messages.size(), assertionMessage);
039    }
040
041    /**
042     * Asserts whether no {@link LogRecord} for the given parameter is present
043     *
044     * @param logLevel to be checked, must not be null
045     * @param messagePart to be checked, must not be null
046     */
047    public static void assertNoLogMessagePresent(TestLogLevel logLevel, String messagePart) {
048        var testHandler = getTestHandler();
049        var messages = testHandler.resolveLogMessagesContaining(logLevel, messagePart);
050        var assertionMessage = AT_LEAST_ONE_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + messagePart + ALL_LOGS + testHandler.getRecordsAsString();
051        assertTrue(messages.isEmpty(), assertionMessage);
052    }
053
054    /**
055     * Asserts whether no {@link LogRecord} for the given parameter is present
056     *
057     * @param logLevel to be checked, must not be null
058     * @param logger to be checked, must not be null
059     */
060    public static void assertNoLogMessagePresent(TestLogLevel logLevel, Class<?> logger) {
061        var testHandler = getTestHandler();
062        var messages = testHandler.resolveLogMessagesForLogger(logLevel, logger);
063        var assertionMessage = AT_LEAST_ONE_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + ", on logger= " + logger + ALL_LOGS + testHandler.getRecordsAsString();
064        assertEquals(0, messages.size(), assertionMessage);
065    }
066
067    /**
068     * Asserts whether exactly one {@link LogRecord} for the given parameter is present
069     *
070     * @param logLevel to be checked, must not be null
071     * @param message to be checked, must not be null
072     */
073    public static void assertSingleLogMessagePresent(TestLogLevel logLevel, String message) {
074        var testHandler = getTestHandler();
075        var records = testHandler.resolveLogMessages(logLevel, message);
076        var assertionMessage = NO_SINGLE_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + message + ALL_LOGS + testHandler.getRecordsAsString();
077        assertEquals(1, records.size(), assertionMessage);
078    }
079
080    /**
081     * Asserts whether at least one {@link LogRecord} for the given parameter is present
082     *
083     * @param logLevel to be checked, must not be null
084     * @param message to be checked, must not be null
085     * @param throwable to be checked, must not be null
086     */
087    public static void assertLogMessagePresent(TestLogLevel logLevel, String message, Throwable throwable) {
088        var testHandler = getTestHandler();
089        var messages = testHandler.resolveLogMessages(logLevel, message, throwable);
090        var assertionMessage = NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + message + AND_THROWABLE + throwable + ALL_LOGS + testHandler.getRecordsAsString();
091        assertNotEquals(0, messages.size(), assertionMessage);
092    }
093
094    /**
095     * Asserts whether exactly one {@link LogRecord} for the given parameter is present
096     *
097     * @param logLevel to be checked, must not be null
098     * @param message to be checked, must not be null
099     * @param throwable to be checked, must not be null
100     */
101    public static void assertSingleLogMessagePresent(TestLogLevel logLevel, String message, Throwable throwable) {
102        var testHandler = getTestHandler();
103        var records = testHandler.resolveLogMessages(logLevel, message, throwable);
104        var assertionMessage = NO_SINGLE_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + message + AND_THROWABLE + throwable + ALL_LOGS + testHandler.getRecordsAsString();
105        assertEquals(1, records.size(), assertionMessage);
106    }
107
108    /**
109     * Asserts whether at least one {@link LogRecord} for the given parameter is present
110     *
111     * @param logLevel to be checked, must not be null
112     * @param message to be checked, must not be null
113     * @param throwableClass to be checked, must not be null
114     */
115    public static void assertLogMessagePresent(TestLogLevel logLevel, String message, Class<? extends Throwable> throwableClass) {
116        var testHandler = getTestHandler();
117        var messages = testHandler.resolveLogMessages(logLevel, message, throwableClass);
118        var assertionMessage = NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + message + AND_THROWABLE + throwableClass + ALL_LOGS + testHandler.getRecordsAsString();
119        assertNotEquals(0, messages.size(), assertionMessage);
120    }
121
122    /**
123     * Asserts whether exactly one {@link LogRecord} for the given parameter is present
124     *
125     * @param logLevel to be checked, must not be null
126     * @param message to be checked, must not be null
127     * @param throwableClass to be checked, must not be null
128     */
129    public static void assertSingleLogMessagePresent(TestLogLevel logLevel, String message, Class<? extends Throwable> throwableClass) {
130        var testHandler = getTestHandler();
131        var records = testHandler.resolveLogMessages(logLevel, message, throwableClass);
132        var assertionMessage = NO_SINGLE_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_EXACTLY + message + AND_THROWABLE + throwableClass + ALL_LOGS + testHandler.getRecordsAsString();
133        assertEquals(1, records.size(), assertionMessage);
134    }
135
136    /**
137     * Asserts whether at least one {@link LogRecord} for the given parameter is present
138     *
139     * @param logLevel to be checked, must not be null
140     * @param messagePart to be checked, must not be null
141     */
142    public static void assertLogMessagePresentContaining(TestLogLevel logLevel, String messagePart) {
143        var testHandler = getTestHandler();
144        var messages = testHandler.resolveLogMessagesContaining(logLevel, messagePart);
145        var assertionMessage = NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_CONTAINS + messagePart + ALL_LOGS + testHandler.getRecordsAsString();
146        assertNotEquals(0, messages.size(), assertionMessage);
147    }
148
149    /**
150     * Asserts whether exactly one {@link LogRecord} for the given parameter is present
151     *
152     * @param logLevel to be checked, must not be null
153     * @param messagePart to be checked, must not be null
154     */
155    public static void assertSingleLogMessagePresentContaining(TestLogLevel logLevel, String messagePart) {
156        var testHandler = getTestHandler();
157        var records = testHandler.resolveLogMessagesContaining(logLevel, messagePart);
158        var assertionMessage = NO_SINGLE_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_CONTAINS + messagePart + ALL_LOGS + testHandler.getRecordsAsString();
159        assertEquals(1, records.size(), assertionMessage);
160    }
161
162    /**
163     * Asserts whether at least one {@link LogRecord} for the given parameter is present
164     *
165     * @param logLevel to be checked, must not be null
166     * @param messagePart to be checked, must not be null
167     * @param throwable to be checked, must not be null
168     */
169    public static void assertLogMessagePresentContaining(TestLogLevel logLevel, String messagePart, Throwable throwable) {
170        var testHandler = getTestHandler();
171        var records = testHandler.resolveLogMessagesContaining(logLevel, messagePart, throwable);
172        assertNotEquals(0, records.size(), NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_CONTAINS + messagePart + AND_THROWABLE + throwable + ALL_LOGS + testHandler.getRecordsAsString());
173    }
174
175    /**
176     * Asserts whether at least one {@link LogRecord} for the given parameter is present
177     *
178     * @param logLevel to be checked, must not be null
179     * @param messagePart to be checked, must not be null
180     * @param throwableClass to be checked, must not be null
181     */
182    public static void assertLogMessagePresentContaining(TestLogLevel logLevel, String messagePart, Class<? extends Throwable> throwableClass) {
183        var testHandler = getTestHandler();
184        var records = testHandler.resolveLogMessagesContaining(logLevel, messagePart, throwableClass);
185        assertNotEquals(0, records.size(), NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_CONTAINS + messagePart + AND_THROWABLE + throwableClass + ALL_LOGS + testHandler.getRecordsAsString());
186    }
187
188    /**
189     * Asserts whether exactly one {@link LogRecord} for the given parameter is present
190     *
191     * @param logLevel to be checked, must not be null
192     * @param messagePart to be checked, must not be null
193     * @param throwable to be checked, must not be null
194     */
195    public static void assertSingleLogMessagePresentContaining(TestLogLevel logLevel, String messagePart, Throwable throwable) {
196        var testHandler = getTestHandler();
197        var records = testHandler.resolveLogMessagesContaining(logLevel, messagePart, throwable);
198        assertEquals(1, records.size(), NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_CONTAINS + messagePart + AND_THROWABLE + throwable + ALL_LOGS + testHandler.getRecordsAsString());
199    }
200
201    /**
202     * Asserts whether exactly one {@link LogRecord} for the given parameter is present
203     *
204     * @param logLevel to be checked, must not be null
205     * @param messagePart to be checked, must not be null
206     * @param throwableClass to be checked, must not be null
207     */
208    public static void assertSingleLogMessagePresentContaining(TestLogLevel logLevel, String messagePart, Class<? extends Throwable> throwableClass) {
209        var testHandler = getTestHandler();
210        var records = testHandler.resolveLogMessagesContaining(logLevel, messagePart, throwableClass);
211        assertEquals(1, records.size(), NO_LOG_MESSAGE_FOUND_WITH_LEVEL + logLevel + MESSAGE_CONTAINS + messagePart + AND_THROWABLE + throwableClass + ALL_LOGS + testHandler.getRecordsAsString());
212    }
213
214    @java.lang.SuppressWarnings("all")
215    @lombok.Generated
216    private LogAsserts() {
217        throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
218    }
219}