package org.springframework.ws.config.annotation;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping;
import org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping;
import org.springframework.ws.soap.server.endpoint.annotation.SoapAction;
import org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping;
/**
* @author Arjen Poutsma
*/
public class DefaultWsConfigurationTest {
private ApplicationContext applicationContext;
@Before
public void setUp() throws Exception {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.register(TestConfig.class);
applicationContext.refresh();
this.applicationContext = applicationContext;
}
@Test
public void payloadRootAnnotationMethodEndpointMapping() throws Exception {
PayloadRootAnnotationMethodEndpointMapping endpointMapping = this.applicationContext.getBean(
PayloadRootAnnotationMethodEndpointMapping.class);
assertEquals(0, endpointMapping.getOrder());
}
@Test
public void soapActionAnnotationMethodEndpointMapping() throws Exception {
SoapActionAnnotationMethodEndpointMapping endpointMapping = this.applicationContext.getBean(
SoapActionAnnotationMethodEndpointMapping.class);
assertEquals(1, endpointMapping.getOrder());
}
@Test
public void annotationActionEndpointMapping() throws Exception {
AnnotationActionEndpointMapping endpointMapping = this.applicationContext.getBean(
AnnotationActionEndpointMapping.class);
assertEquals(2, endpointMapping.getOrder());
}
@Test
public void defaultMethodEndpointAdapter() throws Exception {
DefaultMethodEndpointAdapter adapter =
this.applicationContext.getBean(DefaultMethodEndpointAdapter.class);
assertFalse(adapter.getMethodArgumentResolvers().isEmpty());
assertFalse(adapter.getMethodReturnValueHandlers().isEmpty());
}
@EnableWs
@Configuration
public static class TestConfig {
@Bean(name="testEndpoint")
public TestEndpoint testEndpoint() {
return new TestEndpoint();
}
}
@Endpoint
private static class TestEndpoint {
@SoapAction("handle")
public void handle() {
}
}
}