From d9d52197a65a772ccae000bef0a59be37012a7f8 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:46:38 +0000 Subject: [PATCH] test: improve coverage for utility classes Co-authored-by: RoiSoleil <3462260+RoiSoleil@users.noreply.github.com> --- .../core/util/ExtendedSafeRunnerTest.java | 89 +++++++++++++++++++ .../core/util/StringConstantsTest.java | 17 ++++ 2 files changed, 106 insertions(+) create mode 100644 org.moreunit.core.test/src/org/moreunit/core/util/ExtendedSafeRunnerTest.java create mode 100644 org.moreunit.core.test/src/org/moreunit/core/util/StringConstantsTest.java diff --git a/org.moreunit.core.test/src/org/moreunit/core/util/ExtendedSafeRunnerTest.java b/org.moreunit.core.test/src/org/moreunit/core/util/ExtendedSafeRunnerTest.java new file mode 100644 index 00000000..c6e40d87 --- /dev/null +++ b/org.moreunit.core.test/src/org/moreunit/core/util/ExtendedSafeRunnerTest.java @@ -0,0 +1,89 @@ +package org.moreunit.core.util; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.moreunit.core.util.ExtendedSafeRunner.GenericRunnable; + +class ExtendedSafeRunnerTest { + + @Test + void testApplyToSingleElementSuccess() { + ExtendedSafeRunner runner = new ExtendedSafeRunner(); + String element = "test"; + + GenericRunnable runnable = new GenericRunnable() { + @Override + public void handleException(Throwable throwable, String element) { + // not expected to be called + } + + @Override + public Integer run(String element) throws Exception { + return element.length(); + } + }; + + Integer result = runner.applyTo(element, runnable); + assertThat(result).isEqualTo(4); + } + + @Test + void testApplyToIterableSuccess() { + ExtendedSafeRunner runner = new ExtendedSafeRunner(); + List elements = Arrays.asList("a", "bc", "def"); + + GenericRunnable runnable = new GenericRunnable() { + @Override + public void handleException(Throwable throwable, String element) { + // not expected to be called + } + + @Override + public Integer run(String element) throws Exception { + return element.length(); + } + }; + + Iterable results = runner.applyTo(elements, runnable); + + List resultList = new ArrayList<>(); + results.forEach(resultList::add); + + assertThat(resultList).containsExactly(1, 2, 3); + } + + @Test + void testApplyToExceptionHandling() { + ExtendedSafeRunner runner = new ExtendedSafeRunner(); + String element = "test"; + + List caughtExceptions = new ArrayList<>(); + List caughtElements = new ArrayList<>(); + + GenericRunnable runnable = new GenericRunnable() { + @Override + public void handleException(Throwable throwable, String element) { + caughtExceptions.add(throwable); + caughtElements.add(element); + } + + @Override + public Integer run(String element) throws Exception { + throw new RuntimeException("Test exception"); + } + }; + + Integer result = runner.applyTo(element, runnable); + + assertThat(result).isNull(); // Since the exception was thrown, result is never set + assertThat(caughtExceptions).hasSize(1); + assertThat(caughtExceptions.get(0)).isInstanceOf(RuntimeException.class).hasMessage("Test exception"); + assertThat(caughtElements).containsExactly("test"); + } +} diff --git a/org.moreunit.core.test/src/org/moreunit/core/util/StringConstantsTest.java b/org.moreunit.core.test/src/org/moreunit/core/util/StringConstantsTest.java new file mode 100644 index 00000000..7860a471 --- /dev/null +++ b/org.moreunit.core.test/src/org/moreunit/core/util/StringConstantsTest.java @@ -0,0 +1,17 @@ +package org.moreunit.core.util; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class StringConstantsTest { + + @Test + void testConstantsMatchExpectedValues() { + assertThat(StringConstants.DOT).isEqualTo("."); + assertThat(StringConstants.EMPTY_STRING).isEqualTo(""); + assertThat(StringConstants.NEWLINE).isEqualTo(System.getProperty("line.separator")); + assertThat(StringConstants.SLASH).isEqualTo("/"); + assertThat(StringConstants.WILDCARD).isEqualTo("*"); + } +}