Support receipt on DISCONNECT with simple broker
Issue: SPR-14568
This commit is contained in:
@@ -169,6 +169,40 @@ public class StompSubProtocolHandlerTests {
|
||||
"user-name:joe\n" + "\n" + "\u0000", actual.getPayload());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleMessageToClientWithSimpDisconnectAck() {
|
||||
|
||||
StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.DISCONNECT);
|
||||
Message<?> connectMessage = MessageBuilder.createMessage(EMPTY_PAYLOAD, accessor.getMessageHeaders());
|
||||
|
||||
SimpMessageHeaderAccessor ackAccessor = SimpMessageHeaderAccessor.create(SimpMessageType.DISCONNECT_ACK);
|
||||
ackAccessor.setHeader(SimpMessageHeaderAccessor.DISCONNECT_MESSAGE_HEADER, connectMessage);
|
||||
Message<byte[]> ackMessage = MessageBuilder.createMessage(EMPTY_PAYLOAD, ackAccessor.getMessageHeaders());
|
||||
this.protocolHandler.handleMessageToClient(this.session, ackMessage);
|
||||
|
||||
assertEquals(1, this.session.getSentMessages().size());
|
||||
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
||||
assertEquals("ERROR\n" + "message:Session closed.\n" + "content-length:0\n" +
|
||||
"\n\u0000", actual.getPayload());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleMessageToClientWithSimpDisconnectAckAndReceipt() {
|
||||
|
||||
StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.DISCONNECT);
|
||||
accessor.setReceipt("message-123");
|
||||
Message<?> connectMessage = MessageBuilder.createMessage(EMPTY_PAYLOAD, accessor.getMessageHeaders());
|
||||
|
||||
SimpMessageHeaderAccessor ackAccessor = SimpMessageHeaderAccessor.create(SimpMessageType.DISCONNECT_ACK);
|
||||
ackAccessor.setHeader(SimpMessageHeaderAccessor.DISCONNECT_MESSAGE_HEADER, connectMessage);
|
||||
Message<byte[]> ackMessage = MessageBuilder.createMessage(EMPTY_PAYLOAD, ackAccessor.getMessageHeaders());
|
||||
this.protocolHandler.handleMessageToClient(this.session, ackMessage);
|
||||
|
||||
assertEquals(1, this.session.getSentMessages().size());
|
||||
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
||||
assertEquals("RECEIPT\n" + "receipt-id:message-123\n" + "\n\u0000", actual.getPayload());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleMessageToClientWithSimpHeartbeat() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user