diff --git a/src/test/java/ovh/gasser/newshapes/shapes/ResizeHandleTest.java b/src/test/java/ovh/gasser/newshapes/shapes/ResizeHandleTest.java new file mode 100644 index 0000000..e3202de --- /dev/null +++ b/src/test/java/ovh/gasser/newshapes/shapes/ResizeHandleTest.java @@ -0,0 +1,94 @@ +package ovh.gasser.newshapes.shapes; + +import org.junit.jupiter.api.Test; +import java.awt.Cursor; + +import static org.junit.jupiter.api.Assertions.*; + +class ResizeHandleTest { + + @Test + void testEightHandlesExist() { + assertEquals(8, ResizeHandle.values().length, + "ResizeHandle enum should define exactly 8 handles"); + } + + @Test + void testAllHandleNamesExist() { + assertNotNull(ResizeHandle.valueOf("NW"), "Handle NW should exist"); + assertNotNull(ResizeHandle.valueOf("N"), "Handle N should exist"); + assertNotNull(ResizeHandle.valueOf("NE"), "Handle NE should exist"); + assertNotNull(ResizeHandle.valueOf("E"), "Handle E should exist"); + assertNotNull(ResizeHandle.valueOf("SE"), "Handle SE should exist"); + assertNotNull(ResizeHandle.valueOf("S"), "Handle S should exist"); + assertNotNull(ResizeHandle.valueOf("SW"), "Handle SW should exist"); + assertNotNull(ResizeHandle.valueOf("W"), "Handle W should exist"); + } + + @Test + void testNwMapsToCorrectCursorType() { + assertEquals(Cursor.NW_RESIZE_CURSOR, ResizeHandle.NW.getCursorType(), + "NW handle should map to Cursor.NW_RESIZE_CURSOR"); + } + + @Test + void testNMapsToCorrectCursorType() { + assertEquals(Cursor.N_RESIZE_CURSOR, ResizeHandle.N.getCursorType(), + "N handle should map to Cursor.N_RESIZE_CURSOR"); + } + + @Test + void testNeMapsToCorrectCursorType() { + assertEquals(Cursor.NE_RESIZE_CURSOR, ResizeHandle.NE.getCursorType(), + "NE handle should map to Cursor.NE_RESIZE_CURSOR"); + } + + @Test + void testEMapsToCorrectCursorType() { + assertEquals(Cursor.E_RESIZE_CURSOR, ResizeHandle.E.getCursorType(), + "E handle should map to Cursor.E_RESIZE_CURSOR"); + } + + @Test + void testSeMapsToCorrectCursorType() { + assertEquals(Cursor.SE_RESIZE_CURSOR, ResizeHandle.SE.getCursorType(), + "SE handle should map to Cursor.SE_RESIZE_CURSOR"); + } + + @Test + void testSMapsToCorrectCursorType() { + assertEquals(Cursor.S_RESIZE_CURSOR, ResizeHandle.S.getCursorType(), + "S handle should map to Cursor.S_RESIZE_CURSOR"); + } + + @Test + void testSwMapsToCorrectCursorType() { + assertEquals(Cursor.SW_RESIZE_CURSOR, ResizeHandle.SW.getCursorType(), + "SW handle should map to Cursor.SW_RESIZE_CURSOR"); + } + + @Test + void testWMapsToCorrectCursorType() { + assertEquals(Cursor.W_RESIZE_CURSOR, ResizeHandle.W.getCursorType(), + "W handle should map to Cursor.W_RESIZE_CURSOR"); + } + + @Test + void testValueOfReturnsCorrectConstant() { + assertSame(ResizeHandle.NW, ResizeHandle.valueOf("NW"), "valueOf(\"NW\") should return ResizeHandle.NW"); + assertSame(ResizeHandle.N, ResizeHandle.valueOf("N"), "valueOf(\"N\") should return ResizeHandle.N"); + assertSame(ResizeHandle.NE, ResizeHandle.valueOf("NE"), "valueOf(\"NE\") should return ResizeHandle.NE"); + assertSame(ResizeHandle.E, ResizeHandle.valueOf("E"), "valueOf(\"E\") should return ResizeHandle.E"); + assertSame(ResizeHandle.SE, ResizeHandle.valueOf("SE"), "valueOf(\"SE\") should return ResizeHandle.SE"); + assertSame(ResizeHandle.S, ResizeHandle.valueOf("S"), "valueOf(\"S\") should return ResizeHandle.S"); + assertSame(ResizeHandle.SW, ResizeHandle.valueOf("SW"), "valueOf(\"SW\") should return ResizeHandle.SW"); + assertSame(ResizeHandle.W, ResizeHandle.valueOf("W"), "valueOf(\"W\") should return ResizeHandle.W"); + } + + @Test + void testValueOfWithInvalidNameThrowsIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, + () -> ResizeHandle.valueOf("INVALID"), + "valueOf() with an unknown name should throw IllegalArgumentException"); + } +}