Skip to content

Commit 15ab4b7

Browse files
thcedclaude
andcommitted
refactor: Reuse EchoHandler for Shapes integration tests
Delete PolymorphicHandler, which had no unique behaviour over EchoHandler (both return 200 and reflect the request body). Update all four handler references in the Shapes nested class to use EchoHandler directly. Adjust the circle body assertion to check the echoed payload ("kind":"circle") instead of the old hard-coded {"ok":true} response. Strengthen the missing-discriminator test with Content-Type and body assertions to mirror the unknown-kind case. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent a024d91 commit 15ab4b7

2 files changed

Lines changed: 8 additions & 28 deletions

File tree

src/test/java/com/retailsvc/http/OpenApiServerIT.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -410,16 +410,15 @@ class Shapes {
410410

411411
@Test
412412
void postShape_validCircleReturns200() {
413-
try (var server =
414-
newServer(Map.of("post-shape", new com.retailsvc.http.start.PolymorphicHandler()));
413+
try (var server = newServer(Map.of("post-shape", new EchoHandler()));
415414
var client = httpClient()) {
416415
var body = "{\"kind\":\"circle\",\"radius\":2.5}";
417416
var request = newRequest(server, path, "POST", ofString(body));
418417

419418
var response = client.send(request, BodyHandlers.ofString());
420419

421420
assertThat(response.statusCode()).isEqualTo(200);
422-
assertThat(response.body()).contains("\"ok\":true");
421+
assertThat(response.body()).contains("\"kind\":\"circle\"");
423422
} catch (IOException e) {
424423
fail(e);
425424
} catch (InterruptedException e) {
@@ -430,8 +429,7 @@ void postShape_validCircleReturns200() {
430429

431430
@Test
432431
void postShape_validSquareReturns200() {
433-
try (var server =
434-
newServer(Map.of("post-shape", new com.retailsvc.http.start.PolymorphicHandler()));
432+
try (var server = newServer(Map.of("post-shape", new EchoHandler()));
435433
var client = httpClient()) {
436434
var body = "{\"kind\":\"square\",\"side\":3}";
437435
var request = newRequest(server, path, "POST", ofString(body));
@@ -450,8 +448,7 @@ void postShape_validSquareReturns200() {
450448
@Test
451449
void postShape_unknownKindReturns400() {
452450
// matches zero branches: "kind" is neither "circle" nor "square".
453-
try (var server =
454-
newServer(Map.of("post-shape", new com.retailsvc.http.start.PolymorphicHandler()));
451+
try (var server = newServer(Map.of("post-shape", new EchoHandler()));
455452
var client = httpClient()) {
456453
var body = "{\"kind\":\"triangle\",\"side\":3}";
457454
var request = newRequest(server, path, "POST", ofString(body));
@@ -473,15 +470,17 @@ void postShape_unknownKindReturns400() {
473470
@Test
474471
void postShape_missingDiscriminatorReturns400() {
475472
// omitting "kind" makes both branches fail "required".
476-
try (var server =
477-
newServer(Map.of("post-shape", new com.retailsvc.http.start.PolymorphicHandler()));
473+
try (var server = newServer(Map.of("post-shape", new EchoHandler()));
478474
var client = httpClient()) {
479475
var body = "{\"radius\":2.5}";
480476
var request = newRequest(server, path, "POST", ofString(body));
481477

482478
var response = client.send(request, BodyHandlers.ofString());
483479

484480
assertThat(response.statusCode()).isEqualTo(400);
481+
assertThat(response.headers().firstValue("Content-Type").orElse(""))
482+
.contains("application/problem+json");
483+
assertThat(response.body()).contains("oneOf");
485484
} catch (IOException e) {
486485
fail(e);
487486
} catch (InterruptedException e) {

src/test/java/com/retailsvc/http/start/PolymorphicHandler.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)