From 5995efa3f67d3d1cdfc5f843af1d3a5b77e68189 Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Thu, 2 Apr 2026 18:06:07 +0200 Subject: [PATCH] PdfPageCount durch gezielte Tests abgesichert --- .../domain/model/PdfPageCountTest.java | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 pdf-umbenenner-domain/src/test/java/de/gecheckt/pdf/umbenenner/domain/model/PdfPageCountTest.java diff --git a/pdf-umbenenner-domain/src/test/java/de/gecheckt/pdf/umbenenner/domain/model/PdfPageCountTest.java b/pdf-umbenenner-domain/src/test/java/de/gecheckt/pdf/umbenenner/domain/model/PdfPageCountTest.java new file mode 100644 index 0000000..ca5a461 --- /dev/null +++ b/pdf-umbenenner-domain/src/test/java/de/gecheckt/pdf/umbenenner/domain/model/PdfPageCountTest.java @@ -0,0 +1,139 @@ +package de.gecheckt.pdf.umbenenner.domain.model; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * Tests for PdfPageCount record. + *

+ * Focus: Validate constructor constraints, method behavior, and edge cases. + */ +class PdfPageCountTest { + + @Test + void testConstructor_ValidValue_CreatesInstance() { + // Arrange + int validPageCount = 1; + + // Act + PdfPageCount pageCount = new PdfPageCount(validPageCount); + + // Assert + assertEquals(validPageCount, pageCount.value()); + } + + @Test + void testConstructor_ZeroValue_ThrowsException() { + // Arrange + int invalidPageCount = 0; + + // Act & Assert + IllegalArgumentException exception = assertThrows( + IllegalArgumentException.class, + () -> new PdfPageCount(invalidPageCount) + ); + + assertTrue(exception.getMessage().contains("Page count must be >= 1")); + } + + @Test + void testConstructor_NegativeValue_ThrowsException() { + // Arrange + int invalidPageCount = -1; + + // Act & Assert + IllegalArgumentException exception = assertThrows( + IllegalArgumentException.class, + () -> new PdfPageCount(invalidPageCount) + ); + + assertTrue(exception.getMessage().contains("Page count must be >= 1")); + } + + @Test + void testExceedsLimit_ValueBelowLimit_ReturnsFalse() { + // Arrange + PdfPageCount pageCount = new PdfPageCount(5); + int limit = 10; + + // Act + boolean result = pageCount.exceedsLimit(limit); + + // Assert + assertFalse(result); + } + + @Test + void testExceedsLimit_ValueAtLimit_ReturnsFalse() { + // Arrange + PdfPageCount pageCount = new PdfPageCount(5); + int limit = 5; + + // Act + boolean result = pageCount.exceedsLimit(limit); + + // Assert + assertFalse(result); + } + + @Test + void testExceedsLimit_ValueAboveLimit_ReturnsTrue() { + // Arrange + PdfPageCount pageCount = new PdfPageCount(10); + int limit = 5; + + // Act + boolean result = pageCount.exceedsLimit(limit); + + // Assert + assertTrue(result); + } + + @Test + void testExceedsLimit_NegativeLimit_HandlesCorrectly() { + // Arrange + PdfPageCount pageCount = new PdfPageCount(5); + int limit = -1; + + // Act + boolean result = pageCount.exceedsLimit(limit); + + // Assert + assertTrue(result); // Any positive page count exceeds a negative limit + } + + @Test + void testEquals_SameValue_ObjectsEqual() { + // Arrange + PdfPageCount first = new PdfPageCount(5); + PdfPageCount second = new PdfPageCount(5); + + // Assert + assertEquals(first, second); + assertEquals(first.hashCode(), second.hashCode()); + } + + @Test + void testEquals_DifferentValue_ObjectsNotEqual() { + // Arrange + PdfPageCount first = new PdfPageCount(5); + PdfPageCount second = new PdfPageCount(6); + + // Assert + assertNotEquals(first, second); + assertNotEquals(first.hashCode(), second.hashCode()); + } + + @Test + void testToString_ReturnsExpectedFormat() { + // Arrange + PdfPageCount pageCount = new PdfPageCount(42); + + // Act + String result = pageCount.toString(); + + // Assert + assertTrue(result.contains("PdfPageCount")); + assertTrue(result.contains("value=42")); + } +} \ No newline at end of file