diff --git a/pom.xml b/pom.xml index a0c628c9..a3b583e9 100644 --- a/pom.xml +++ b/pom.xml @@ -77,9 +77,9 @@ ${project.basedir}/processor/target/site/jacoco-aggregate/jacoco.xml,${project.basedir}/processor/target/site/jacoco/jacoco.xml **/example/** - **/processor/model/**,**/exceptions/**,**/generated/** + Only genuine boilerplate is excluded (DTO model, exception classes, constants + holders, generated sources); mapper logic is intentionally measured. --> + **/processor/model/**,**/exceptions/**,**/generated/**,**/JavadocConstants.java 3.13.0 diff --git a/processor/pom.xml b/processor/pom.xml index 5d6b0bfa..5d9787db 100644 --- a/processor/pom.xml +++ b/processor/pom.xml @@ -357,6 +357,8 @@ **/processor/model/** **/exceptions/** + + **/JavadocConstants.* diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/ActivePerformanceTrackerTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/ActivePerformanceTrackerTest.java index 709fa08d..208b2c06 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/ActivePerformanceTrackerTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/ActivePerformanceTrackerTest.java @@ -364,16 +364,8 @@ void multipleGenerators_accumulateTimeAndCalls() throws IOException { JsonNode genStats = root.get("generatorStats"); assertEquals(2, genStats.size()); - // Find GenA by name (stats are sorted by elapsed time, so index is unpredictable) - JsonNode genA = null; - for (int i = 0; i < genStats.size(); i++) { - if ("GenA".equals(genStats.get(i).get("name").asText())) { - genA = genStats.get(i); - break; - } - } - assertNotNull(genA, "GenA should be present in generator stats"); - assertEquals(2, genA.get("calls").asInt(), "GenA was called twice"); + JsonNode genA = genStats.get(genStats.get(0).get("name").asText().equals("GenA") ? 0 : 1); + assertEquals(2, genA.get("calls").asInt()); } @Test diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/NoOpPerformanceTrackerTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/NoOpPerformanceTrackerTest.java new file mode 100644 index 00000000..623ca2e6 --- /dev/null +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/processing/logging/NoOpPerformanceTrackerTest.java @@ -0,0 +1,56 @@ +/* + * MIT License + * + * Copyright (c) 2026 Andreas Igel + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.javahelpers.simple.builders.processor.processing.logging; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import org.junit.jupiter.api.Test; + +/** + * Unit tests for {@link NoOpPerformanceTracker}. + * + *

Verifies that every tracking call is a safe no-op, including {@code generateReport} with a + * null logger (the report must be dropped entirely when tracking is disabled). + */ +class NoOpPerformanceTrackerTest { + + private final NoOpPerformanceTracker tracker = new NoOpPerformanceTracker(); + + @Test + void allTrackingCallsAreSafeNoOps() { + assertDoesNotThrow( + () -> { + tracker.startPhase(); + tracker.endPhase("phase"); + tracker.startGenerator(); + tracker.endGenerator("generator"); + tracker.startEnhancer(); + tracker.endEnhancer("enhancer"); + tracker.startClass("class"); + tracker.endClass(1, 2); + tracker.generateReport(null); + }); + } +}