@Test public void testRegisterOutboundRequestRejectsMultipleRegistrationOfSameRequest() { Exchange exchange = newOutboundRequest(); store.registerOutboundRequest(exchange); // WHEN registering the same request again try { store.registerOutboundRequest(exchange); fail("should have thrown IllegalArgumentException"); } catch (IllegalArgumentException e) { // THEN the store rejects the re-registration } }
public void testRegisterOutboundRequestAcceptsRetransmittedRequest() { Exchange exchange = newOutboundRequest(); store.registerOutboundRequest(exchange); // WHEN registering the same request as a re-transmission exchange.setFailedTransmissionCount(1); store.registerOutboundRequest(exchange); // THEN the store contains the re-transmitted request KeyMID key = KeyMID.fromOutboundMessage(exchange.getCurrentRequest()); Exchange exchangeFromStore = store.get(key); assertThat(exchangeFromStore, is(exchange)); assertThat(exchangeFromStore.getFailedTransmissionCount(), is(1)); }
@Test public void testRegisterOutboundRequestRejectsOtherRequestWithAlreadyUsedMid() { Exchange exchange = newOutboundRequest(); store.registerOutboundRequest(exchange); // WHEN registering another request with the same MID Exchange newExchange = newOutboundRequest(); newExchange.getCurrentRequest().setMID(exchange.getCurrentRequest().getMID()); try { store.registerOutboundRequest(newExchange); fail("should have thrown IllegalArgumentException"); } catch (IllegalArgumentException e) { // THEN the newExchange is not put to the store KeyMID key = KeyMID.fromOutboundMessage(exchange.getCurrentRequest()); Exchange exchangeFromStore = store.get(key); assertThat(exchangeFromStore, is(exchange)); assertThat(exchangeFromStore, is(not(newExchange))); } }
@Test public void testRegisterOutboundRequestAssignsMid() { Exchange exchange = newOutboundRequest(); // WHEN registering the outbound request store.registerOutboundRequest(exchange); // THEN the request gets assigned an MID and is put to the store assertNotNull(exchange.getCurrentRequest().getMID()); KeyMID key = KeyMID.fromOutboundMessage(exchange.getCurrentRequest()); assertThat(store.get(key), is(exchange)); }