@Test public void shouldReceiveAttributesUsingExplicitConversion(boolean flag) throws JMSException { // Given String pattern = "dd.MM.YYYY"; LocalDate today = new LocalDate(); Mapping mapping = new MappingBuilder(OPERATION_FIELD_NAME) // .mapField("date", FieldMapping.map("date", new JodaLocalDateConverter(pattern))) // .mapField("flag", FieldMapping.map("flag", new StringToBooleanConverter("1", "0"))) // .build(); MapMessage message = createPayload( OPERATION_FIELD_NAME, "localDateCall", "date", today.toString(pattern), "flag", flag ? "1" : "0"); // When JodaTimeApi mock = mock(JodaTimeApi.class); MapMessageDecoder.of(JodaTimeApi.class, mock, mapping).onMessage(message); // Then verify(mock).localDateCall(today, flag); }
@Test public void shouldMapReceiveOperationAttibute() throws JMSException { // Given MappingBuilder myMapping = new MappingBuilder("myop"); MapMessage message = createPayload("myop", "mappedNoArgCall"); // When MapMessageDecoder.of(MappedApi.class, serviceMock, myMapping.build()).onMessage(message); // Then verify(serviceMock).mappedNoArgCall(); }
@Test public void shouldCallServiceOneCharMethod() { // Given JmsSenderFactory factory = new JmsSenderFactory(CONFIG, new MapJmsPayloadHandler()); OneCharTestApi sendProxy = factory.create(OneCharTestApi.class); Mapping receiveMapping = new MappingBuilder("METHOD").build(); // When sendProxy.a("content"); MapMessageDecoder.of(OneCharTestApi.class, oneCharServiceMock, receiveMapping) // .onMessage(captureMessage()); // Then verify(oneCharServiceMock).a("content"); }
@Test @Ignore // TODO reenable public void shouldMapReceiveBoxedPrimitiveAttributesIfWrittenAsStrings( /* @Values("BOXED_PRIMITIVE_CALLS") */ SimpleServiceCall call) throws Exception { // Given MappingBuilder mapping = new MappingBuilder(OPERATION_FIELD_NAME); String operation = call.operation; String argument = call.argument; Class<?> type = call.type; Object value = call.value; mapping.mapField(argument, FieldMapping.map(argument)); MapMessage message = createPayload(OPERATION_FIELD_NAME, operation, argument, String.valueOf(value)); // When MapMessageDecoder.of(BoxedPrimitivesTestApi.class, boxedPrimitivesServiceMock, mapping.build()) .onMessage(message); // Then invoke(verify(boxedPrimitivesServiceMock), operation, type, value); }
@Test public void receiveShouldFailWithUnmappedName() { // Given Mapping sendMapping = new MappingBuilder(OPERATION_FIELD_NAME).mapOperation("mappedCall", "OP").build(); MappedApi service = service(sendMapping); service.mappedCall("a", 0L); Mapping receiveMapping = partialMapping(); // When String message = null; try { MapMessageDecoder.of(MappedApi.class, serviceMock, receiveMapping) .onMessage(captureMessage()); fail("RuntimeException expected"); } catch (RuntimeException e) { message = e.getCause().getMessage(); } // Then assertEquals("no mapping for field: s2", message); }
private void receive(Message message, Mapping mapping) { MapMessageDecoder.of(MappedApi.class, serviceMock, mapping).onMessage(message); }