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
Verify clone(), getBounds(), and translate() contracts across all Shape
implementations (SRectangle, SCircle, STriangle, SText, SCollection)
using @ParameterizedTest + @MethodSource.
Also adds junit-jupiter-params dependency to pom.xml.
Closes#8
The Gitea runner image does not include Maven, causing 'mvn: command not found'.
Add Maven wrapper (mvnw) so CI downloads Maven automatically.
Closes#25
- Add JaCoCo maven plugin (0.8.11) with prepare-agent, report, and check goals
- Set 50% bundle-level line coverage gate (to be raised as test coverage grows)
- Exclude UI classes (App, Controller, ShapesView, etc.) from coverage checks
since they require a display and cannot be unit-tested
- Add Gitea Actions workflow: checkout → JDK 16 → mvn verify → upload report
Closes#14
- Add HTMLExporterTest covering HTML structure, rectangle/circle div generation,
empty and nested collections, and constructor
- Add SVGExporterTest covering SVG structure, rectangle/circle elements,
color attributes, nested collections, and constructor
- Selection: add addAll() method for bulk shape addition
- Controller: box selection with mouse drag on empty space
- ShapeDraftman: drawSelectionBox() for rubber-band rendering
- ShapesView: currentSelectionBox field and setter