Add parameterized ShapeContractTest for Shape interface invariants
All checks were successful
CI / build-and-test (pull_request) Successful in 18s

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
This commit is contained in:
2026-03-27 16:13:59 +01:00
committed by Thibaud Gasser
parent c51ae8cfbb
commit 7ddef4d8ab
3 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
package ovh.gasser.newshapes.shapes;
import java.awt.Color;
import java.util.stream.Stream;
/**
* Provides Shape instances for parameterized contract tests.
*/
public final class ShapeFactory {
private ShapeFactory() {}
static Stream<Shape> allShapes() {
return Stream.of(
SRectangle.create(10, 20, 100, 50),
SCircle.create(5, 5, 30),
STriangle.create(0, 0, 40, Color.RED, Color.BLACK),
SText.create(15, 25, "Hello"),
SCollection.of(
SRectangle.create(0, 0, 20, 20),
SCircle.create(10, 10, 5)
)
);
}
}