From 1070928d39728d2aa4ae6d43aee20cb595f8584a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 13 Aug 2026 19:41:16 +0100 Subject: Support generic structs in java-precisely-matchers --- examples/03-struct-generic/hobgoblin.json5 | 8 +++--- .../test/java/org/zwobble/example/PointTests.java | 33 +++++++++++++++++++--- 2 files changed, 33 insertions(+), 8 deletions(-) (limited to 'examples') diff --git a/examples/03-struct-generic/hobgoblin.json5 b/examples/03-struct-generic/hobgoblin.json5 index 744e6d6..39e039d 100644 --- a/examples/03-struct-generic/hobgoblin.json5 +++ b/examples/03-struct-generic/hobgoblin.json5 @@ -10,10 +10,10 @@ generator: "java-types", path: "output/java/src/gen/java", }, -// { -// generator: "java-precisely-matchers", -// path: "output/java/src/gen/java", -// }, + { + generator: "java-precisely-matchers", + path: "output/java/src/gen/java", + }, // { // generator: "rust-types", // path: "output/rust/src", diff --git a/examples/03-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/03-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java index 36810d4..fba31c7 100644 --- a/examples/03-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java +++ b/examples/03-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -1,18 +1,43 @@ package org.zwobble.example; -import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; import org.zwobble.example.types.point.Line; -import org.zwobble.example.types.point.Point; +import org.zwobble.example.types.point.LineDrawing; +import org.zwobble.example.types.point.Point2D; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.zwobble.example.types.point.LineDrawingMatcher.isLineDrawing; +import static org.zwobble.example.types.point.LineMatcher.isLine; +import static org.zwobble.example.types.point.Point2DMatcher.isPoint2D; +import static org.zwobble.precisely.AssertThat.assertThat; +import static org.zwobble.precisely.Matchers.equalTo; +import static org.zwobble.precisely.Matchers.isSequence; public class PointTests { @Test public void line() { var line = new Line<>( - new Point(10, 25), - new Point(42, 47) + new Point2D(10, 25), + new Point2D(42, 47) ); assertEquals(line.start().x(), 10); assertEquals(line.end().y(), 47); } + + @Test + public void matchers() { + var lineDrawing = new LineDrawing<>(List.of( + new Line<>(new Point2D(10, 25), new Point2D(42, 47)) + )); + + assertThat(lineDrawing, isLineDrawing() + .withLines(isSequence( + isLine() + .withStart(isPoint2D().withX(equalTo(10)).withY(equalTo(25))) + .withEnd(isPoint2D().withX(equalTo(42)).withY(equalTo(47))) + )) + ); + } } -- cgit v1.2.3