1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.server.endpoint.mapping;
18
19 import java.lang.reflect.Method;
20 import javax.xml.namespace.QName;
21 import javax.xml.transform.Source;
22
23 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.context.ApplicationContext;
25 import org.springframework.test.context.ContextConfiguration;
26 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
27 import org.springframework.ws.server.endpoint.MethodEndpoint;
28 import org.springframework.ws.server.endpoint.annotation.Endpoint;
29 import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
30 import org.springframework.ws.server.endpoint.annotation.RequestPayload;
31
32 import org.junit.Test;
33 import org.junit.runner.RunWith;
34
35 import static org.junit.Assert.assertEquals;
36 import static org.junit.Assert.assertNotNull;
37
38 @RunWith(SpringJUnit4ClassRunner.class)
39 @ContextConfiguration("jdk-proxy-registration.xml")
40 public class JdkProxyRegistrationTest {
41
42 @Autowired
43 private PayloadRootAnnotationMethodEndpointMapping mapping;
44
45 @Autowired
46 private ApplicationContext applicationContext;
47
48 @Test
49 public void registration() throws NoSuchMethodException {
50 MethodEndpoint jdkProxy = mapping.lookupEndpoint(new QName("http://springframework.org/spring-ws", "Request"));
51 assertNotNull("jdk proxy endpoint not registered", jdkProxy);
52 Method doIt = MyEndpointImpl.class.getMethod("doIt", Source.class);
53 MethodEndpoint expected = new MethodEndpoint("jdkProxyEndpoint", applicationContext, doIt);
54 assertEquals("Invalid endpoint registered", expected, jdkProxy);
55 }
56
57 @Endpoint
58 public interface MyEndpoint {
59
60 @PayloadRoot(localPart = "Request", namespace = "http://springframework.org/spring-ws")
61 @Log
62 void doIt(Source payload);
63 }
64
65 public static class MyEndpointImpl implements MyEndpoint {
66
67 public void doIt(@RequestPayload Source payload) {
68 }
69
70 }
71
72 }