From 4e92f903cc30835e75f0704bc4e1f5ef87c22717 Mon Sep 17 00:00:00 2001 From: Sylvain Jermini Date: Fri, 7 Jun 2019 23:04:28 +0200 Subject: [PATCH] rest api: integration tests + handle error in release ticket #588 --- .../controller/api/v2/user/TicketApiV2Controller.java | 8 ++++++-- .../api/v2/user/ReservationFlowIntegrationTest.java | 9 ++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/alfio/controller/api/v2/user/TicketApiV2Controller.java b/src/main/java/alfio/controller/api/v2/user/TicketApiV2Controller.java index 82e331f3c9..ff6737ea38 100644 --- a/src/main/java/alfio/controller/api/v2/user/TicketApiV2Controller.java +++ b/src/main/java/alfio/controller/api/v2/user/TicketApiV2Controller.java @@ -98,8 +98,12 @@ public ResponseEntity sendTicketByEmail(@PathVariable("eventName") Stri public ResponseEntity releaseTicket(@PathVariable("eventName") String eventName, @PathVariable("ticketIdentifier") String ticketIdentifier) { var oData = ticketReservationManager.fetchCompleteAndAssigned(eventName, ticketIdentifier); - oData.ifPresent(triple -> ticketReservationManager.releaseTicket(triple.getLeft(), triple.getMiddle(), triple.getRight())); - return ResponseEntity.ok(true); + try { + oData.ifPresent(triple -> ticketReservationManager.releaseTicket(triple.getLeft(), triple.getMiddle(), triple.getRight())); + return ResponseEntity.ok(true); + } catch (IllegalStateException ise) { + return ResponseEntity.badRequest().body(false); + } } diff --git a/src/test/java/alfio/controller/api/v2/user/ReservationFlowIntegrationTest.java b/src/test/java/alfio/controller/api/v2/user/ReservationFlowIntegrationTest.java index 685e0f61ce..851085641c 100644 --- a/src/test/java/alfio/controller/api/v2/user/ReservationFlowIntegrationTest.java +++ b/src/test/java/alfio/controller/api/v2/user/ReservationFlowIntegrationTest.java @@ -521,11 +521,10 @@ public void reservationFlowTest() throws Exception { assertEquals(fullTicketInfo.ticketCode(event.getPrivateKey()), qrCodeRead.getText()); //can only be done for free tickets - //var releaseTicketFailure = ticketApiV2Controller.releaseTicket(event.getShortName(), ticket.getUuid()); - //assertEquals(HttpStatus.OK, releaseTicketFailure.getStatusCode()); - //ticketFoundRes = ticketApiV2Controller.getTicketInfo(event.getShortName(), ticket.getUuid()); - // - //assertEquals(HttpStatus.OK, ticketFoundRes.getStatusCode()); + var releaseTicketFailure = ticketApiV2Controller.releaseTicket(event.getShortName(), ticket.getUuid()); + assertEquals(HttpStatus.BAD_REQUEST, releaseTicketFailure.getStatusCode()); + assertEquals(HttpStatus.OK, ticketApiV2Controller.getTicketInfo(event.getShortName(), ticket.getUuid()).getStatusCode()); + } }