From 1710494ce304d2052a030973004cf381436db58e Mon Sep 17 00:00:00 2001 From: Thibaud Date: Fri, 27 Mar 2026 16:21:25 +0100 Subject: [PATCH] Add SelectionAttributes unit tests Test core data type for selected/unselected state, default values, ID constant, interface compliance, and instance independence. 8 tests covering all public API of SelectionAttributes. Closes #6 --- .../attributes/SelectionAttributesTest.java | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/test/java/ovh/gasser/newshapes/attributes/SelectionAttributesTest.java diff --git a/src/test/java/ovh/gasser/newshapes/attributes/SelectionAttributesTest.java b/src/test/java/ovh/gasser/newshapes/attributes/SelectionAttributesTest.java new file mode 100644 index 0000000..f5399a7 --- /dev/null +++ b/src/test/java/ovh/gasser/newshapes/attributes/SelectionAttributesTest.java @@ -0,0 +1,72 @@ +package ovh.gasser.newshapes.attributes; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class SelectionAttributesTest { + + @Test + void testDefaultConstructorIsUnselected() { + SelectionAttributes attrs = new SelectionAttributes(); + assertFalse(attrs.selected, "Default constructor should create unselected state"); + } + + @Test + void testConstructorWithTrue() { + SelectionAttributes attrs = new SelectionAttributes(true); + assertTrue(attrs.selected, "Constructor with true should create selected state"); + } + + @Test + void testConstructorWithFalse() { + SelectionAttributes attrs = new SelectionAttributes(false); + assertFalse(attrs.selected, "Constructor with false should create unselected state"); + } + + @Test + void testGetIDReturnsCorrectValue() { + SelectionAttributes attrs = new SelectionAttributes(); + assertEquals(SelectionAttributes.ID, attrs.getID()); + } + + @Test + void testIDConstant() { + assertEquals("SELECTION_ATTRS", SelectionAttributes.ID); + } + + @Test + void testImplementsAttributes() { + SelectionAttributes attrs = new SelectionAttributes(); + assertInstanceOf(Attributes.class, attrs); + } + + @Test + void testSelectedFieldCanBeToggled() { + SelectionAttributes attrs = new SelectionAttributes(false); + assertFalse(attrs.selected); + + attrs.selected = true; + assertTrue(attrs.selected); + + attrs.selected = false; + assertFalse(attrs.selected); + } + + @Test + void testTwoInstancesAreIndependent() { + SelectionAttributes attrs1 = new SelectionAttributes(true); + SelectionAttributes attrs2 = new SelectionAttributes(false); + + assertNotEquals(attrs1.selected, attrs2.selected); + + attrs2.selected = true; + assertTrue(attrs1.selected); + assertTrue(attrs2.selected); + + // Mutating one doesn't affect the other + attrs1.selected = false; + assertFalse(attrs1.selected); + assertTrue(attrs2.selected); + } +}