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); } }