Add StackTraceParser unit test

This commit is contained in:
JeremyStar™ 2024-06-28 01:12:05 +02:00
parent bba645f69b
commit ef29a1f775
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D

View file

@ -0,0 +1,65 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.srctests.utility;
import de.staropensource.sosengine.base.utility.StackTraceParser;
import de.staropensource.sosengine.unittests.UnitLogger;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Tests the class {@link StackTraceParser}.
*/
@DisplayName("StackTraceParser")
class StackTraceParserTest {
/**
* The {@link UnitLogger} for this instance.
*/
private static final UnitLogger logger = new UnitLogger(StackTraceParserTest.class);
/**
* Tests the method {@code getHeader}.
*/
@ParameterizedTest
@DisplayName("getHeader")
@ValueSource(strings = {
"",
"This is an example message",
"Some description here..."
})
void testGetHeader(@NotNull String message) {
logger.testCall("testGetHeader", message);
String output;
if (message.isEmpty())
output = new StackTraceParser(new NumberFormatException()).getHeader();
else
output = new StackTraceParser(new NumberFormatException(message)).getHeader();
String expected = "Caused by: " + NumberFormatException.class.getName();
if (!message.isEmpty())
expected += ": " + message;
assertEquals(expected, output, "Output \"" + output + "\" does not match expected output \"" + expected + "\"");
}
}