/* * Copyright 2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package biz.c24.io.spring.integration.transformer; import biz.c24.io.examples.models.basic.Employee; import biz.c24.io.spring.integration.xpath.XPathEvaluationType; import org.junit.Test; import org.springframework.integration.support.MessageBuilder; import org.springframework.messaging.Message; import java.util.Arrays; import java.util.List; import static biz.c24.io.spring.integration.test.TestUtils.loadObject; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; public class XPathTransformerIUTests { @Test public void canTransformToListOfString() throws Exception { C24XPathTransformer transformer = new C24XPathTransformer("//FirstName"); transformer.setEvaluationType(XPathEvaluationType.LIST_RESULT); Message<?> message = MessageBuilder.withPayload(loadObject()).build(); Message<?> outputMessage = transformer.transform(message); @SuppressWarnings("unchecked") List<String> payload = (List<String>) outputMessage.getPayload(); List<String> expected = Arrays.asList("Andy", "Joe", "Greg"); assertThat(payload, notNullValue()); assertTrue(payload.containsAll(expected)); } @Test public void canTransformToListOfEmployee() throws Exception { C24XPathTransformer transformer = new C24XPathTransformer("//Employee"); transformer.setEvaluationType(XPathEvaluationType.LIST_RESULT); Message<?> message = MessageBuilder.withPayload(loadObject()).build(); Message<?> outputMessage = transformer.transform(message); List<Object> payload = (List<Object>) outputMessage.getPayload(); assertThat(payload, notNullValue()); for (Object o : payload) { assertThat(o, instanceOf(Employee.class)); } } @Test public void canTransformToString() throws Exception { C24XPathTransformer transformer = new C24XPathTransformer( "//Employee[1]/FirstName"); transformer.setEvaluationType(XPathEvaluationType.STRING_RESULT); Message<?> message = MessageBuilder.withPayload(loadObject()).build(); Message<?> outputMessage = transformer.transform(message); assertThat(outputMessage.getPayload(), notNullValue()); assertThat((String) outputMessage.getPayload(), is("Andy")); } }