From a5957e99dcf000ed4d73e145fc6fdcd355732369 Mon Sep 17 00:00:00 2001 From: Ludy87 Date: Sun, 10 Aug 2025 01:15:37 +0200 Subject: [PATCH] Create ReplaceAndInvertColorFactoryTest.java --- .../ReplaceAndInvertColorFactoryTest.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 app/core/src/test/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactoryTest.java diff --git a/app/core/src/test/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactoryTest.java b/app/core/src/test/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactoryTest.java new file mode 100644 index 000000000..5285091c9 --- /dev/null +++ b/app/core/src/test/java/stirling/software/SPDF/Factories/ReplaceAndInvertColorFactoryTest.java @@ -0,0 +1,74 @@ +package stirling.software.SPDF.Factories; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.mock; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.web.multipart.MultipartFile; + +import stirling.software.common.model.api.misc.HighContrastColorCombination; +import stirling.software.common.model.api.misc.ReplaceAndInvert; +import stirling.software.common.util.misc.CustomColorReplaceStrategy; +import stirling.software.common.util.misc.InvertFullColorStrategy; +import stirling.software.common.util.misc.ReplaceAndInvertColorStrategy; + +class ReplaceAndInvertColorFactoryTest { + + private ReplaceAndInvertColorFactory factory; + private MultipartFile file; + + @BeforeEach + void setup() { + factory = new ReplaceAndInvertColorFactory(); + file = mock(MultipartFile.class); + } + + @Test + void whenCustomColor_thenReturnsCustomColorReplaceStrategy() { + ReplaceAndInvert option = ReplaceAndInvert.CUSTOM_COLOR; + HighContrastColorCombination combo = null; // not used for CUSTOM_COLOR + + ReplaceAndInvertColorStrategy strategy = + factory.replaceAndInvert(file, option, combo, "#FFFFFF", "#000000"); + + assertNotNull(strategy); + assertTrue( + strategy instanceof CustomColorReplaceStrategy, + "Expected CustomColorReplaceStrategy for CUSTOM_COLOR"); + } + + @Test + void whenHighContrastColor_thenReturnsCustomColorReplaceStrategy() { + ReplaceAndInvert option = ReplaceAndInvert.HIGH_CONTRAST_COLOR; + HighContrastColorCombination combo = null; + + ReplaceAndInvertColorStrategy strategy = + factory.replaceAndInvert(file, option, combo, "#FFFFFF", "#000000"); + + assertNotNull(strategy); + assertTrue( + strategy instanceof CustomColorReplaceStrategy, + "Expected CustomColorReplaceStrategy for HIGH_CONTRAST_COLOR"); + } + + @Test + void whenFullInversion_thenReturnsInvertFullColorStrategy() { + ReplaceAndInvert option = ReplaceAndInvert.FULL_INVERSION; + + ReplaceAndInvertColorStrategy strategy = + factory.replaceAndInvert(file, option, null, null, null); + + assertNotNull(strategy); + assertTrue( + strategy instanceof InvertFullColorStrategy, + "Expected InvertFullColorStrategy for FULL_INVERSION"); + } + + @Test + void whenNullOption_thenReturnsNull() { + ReplaceAndInvertColorStrategy strategy = + factory.replaceAndInvert(file, null, null, null, null); + assertNull(strategy, "Expected null for unsupported/unknown option"); + } +}