diff --git a/palette/pom.xml b/palette/pom.xml index e91f7fc..978f208 100644 --- a/palette/pom.xml +++ b/palette/pom.xml @@ -31,6 +31,12 @@ 5.12.0 test + + org.junit.jupiter + junit-jupiter-params + 5.12.0 + test + diff --git a/palette/src/test/java/com/catppuccin/PaletteTests.java b/palette/src/test/java/com/catppuccin/PaletteTests.java index 842dbf9..ce61bf6 100644 --- a/palette/src/test/java/com/catppuccin/PaletteTests.java +++ b/palette/src/test/java/com/catppuccin/PaletteTests.java @@ -1,6 +1,11 @@ package com.catppuccin; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.*; @@ -12,30 +17,25 @@ public Color base() { } public class PaletteTests { - @Test - public void mochaExistsAndReturnsCorrectDetails() { - Flavor mocha = Palette.MOCHA; - assertEquals("mocha", mocha.name(), "mocha to have the correct name"); - assertEquals(mocha.base().hex(), "1e1e2e"); - assertEquals(mocha.base().r(), 30); - assertEquals(mocha.base().g(), 30); - assertEquals(mocha.base().b(), 46); - assertArrayEquals(mocha.base().components(), new int[]{30, 30, 46}); - } - @Test - public void frappeExistsAndReturnsCorrectDetails() { - assertEquals("frappe", Palette.FRAPPE.name(), "frappe to have the correct name"); + private static Stream provideFlavors() { + return Stream.of( + Arguments.of(Palette.MOCHA, "mocha", "1e1e2e", 30, 30, 46), + Arguments.of(Palette.FRAPPE, "frappe", "303446", 48, 52, 70), + Arguments.of(Palette.MACCHIATO, "macchiato", "24273a", 36, 39, 58), + Arguments.of(Palette.LATTE, "latte", "eff1f5", 239, 241, 245) + ); } - @Test - public void macchiatoExistsAndReturnsCorrectDetails() { - assertEquals("macchiato", Palette.MACCHIATO.name(), "macchiato to have the correct name"); - } - - @Test - public void latteExistsAndReturnsCorrectDetails() { - assertEquals("latte", Palette.LATTE.name(), "latte to have the correct name"); + @ParameterizedTest + @MethodSource("provideFlavors") + public void flavorExistsAndReturnsCorrectDetails(Flavor flavor, String name, String hex, int r, int g, int b) { + assertEquals(name, flavor.name(), name + " to have the correct name"); + assertEquals(hex, flavor.base().hex()); + assertEquals(r, flavor.base().r()); + assertEquals(g, flavor.base().g()); + assertEquals(b, flavor.base().b()); + assertArrayEquals(new int[]{r, g, b}, flavor.base().components()); } @Test @@ -48,18 +48,19 @@ public void oledOverridesProperly() { assertNotEquals(mocha.base(), oled.base(), "oled base and mocha base to not be the same"); } - @Test - public void darkLightSet() { - assertTrue(Palette.MOCHA.isDark(), "mocha to be dark"); - assertFalse(Palette.MOCHA.isLight(), "mocha to be not light"); - - assertTrue(Palette.MACCHIATO.isDark(), "macchiato to be dark"); - assertFalse(Palette.MACCHIATO.isLight(), "macchiato to be not light"); - - assertTrue(Palette.FRAPPE.isDark(), "frappe to be dark"); - assertFalse(Palette.FRAPPE.isLight(), "frappe to be not light"); + @ParameterizedTest + @MethodSource("provideDarkLightFlavors") + public void darkLightSet(Flavor flavor, boolean isDark, boolean isLight) { + assertEquals(isDark, flavor.isDark(), flavor.name() + " to be dark"); + assertEquals(isLight, flavor.isLight(), flavor.name() + " to be light"); + } - assertTrue(Palette.LATTE.isLight(), "latte to be light"); - assertFalse(Palette.LATTE.isDark(), "latte to be not dark"); + private static Stream provideDarkLightFlavors() { + return Stream.of( + Arguments.of(Palette.MOCHA, true, false), + Arguments.of(Palette.MACCHIATO, true, false), + Arguments.of(Palette.FRAPPE, true, false), + Arguments.of(Palette.LATTE, false, true) + ); } }