source: EDIS/tags/ed/tracking-server-core/src/test/java/gov/va/med/edp/rpc/VistaLinkRpcTemplateTest.java@ 1240

Last change on this file since 1240 was 1240, checked in by George Lilly, 13 years ago

new version from the VA

File size: 5.0 KB
Line 
1package gov.va.med.edp.rpc;
2
3import gov.va.med.vistalink.adapter.record.LoginsDisabledFaultException;
4import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
5import gov.va.med.vistalink.rpc.NoRpcContextFaultException;
6import gov.va.med.vistalink.rpc.RpcNotInContextFaultException;
7import gov.va.med.vistalink.rpc.RpcNotOkForProxyUseException;
8import gov.va.med.vistalink.security.m.SecurityAccessVerifyCodePairInvalidException;
9import org.springframework.dao.DataAccessResourceFailureException;
10import org.springframework.dao.DataRetrievalFailureException;
11import org.springframework.dao.PermissionDeniedDataAccessException;
12
13public class VistaLinkRpcTemplateTest extends AbstractVistaLinkConnectionTest {
14
15 private static final String TEST_DUZ = "1234567";
16 protected static final String TEST_RPC_CONTEXT = "FOO RPC CONTEXT";
17 protected static final String TEST_RPC = "FOO BAR RPC";
18 protected static final String TEST_DIVISION = "500";
19
20 public void testExecuteRpcAsUserNoParams() {
21 expectVistaLinkDuzConnection(TEST_DUZ);
22 expectRpcAndReturn(TEST_RPC_CONTEXT, TEST_RPC, "<foo/>");
23
24 replay();
25
26 VistaLinkRpcTemplate t = new VistaLinkRpcTemplate(mockConnectionFactoryLocator);
27
28 String result = t.rpcAsUser(TEST_DIVISION, TEST_DUZ, TEST_RPC_CONTEXT, TEST_RPC);
29 assertEquals("<foo/>", result);
30
31 verify();
32 }
33
34 public void testExecuteRpcAsApplicationNoParams() {
35 expectVistaLinkAppProxyConnection(TEST_DUZ);
36 expectRpcAndReturn(TEST_RPC_CONTEXT, TEST_RPC, "<foo/>");
37
38 replay();
39
40 VistaLinkRpcTemplate t = new VistaLinkRpcTemplate(mockConnectionFactoryLocator);
41
42 String result = t.rpcAsApplication(TEST_DIVISION, TEST_DUZ, TEST_RPC_CONTEXT, TEST_RPC);
43 assertEquals("<foo/>", result);
44
45 verify();
46 }
47
48 public void testDataAccessResourceFailureExceptionFromLocator() {
49 VistaLinkRpcTemplate t = new VistaLinkRpcTemplate(mockConnectionFactoryLocator);
50 try {
51 t.rpcAsUser("600", TEST_DUZ, TEST_RPC_CONTEXT, TEST_RPC); // locator can only find station 500
52 fail("expected data access resource failure exception");
53 } catch (DataAccessResourceFailureException e) {
54 // NOOP
55 }
56 }
57
58 public void testVistaLinkFaultException() {
59 assertExceptionDuringRpc(DataRetrievalFailureException.class, new VistaLinkFaultException("foo bar baz"));
60 }
61
62 public void testSecurityFaultException() {
63 assertExceptionDuringRpc(VistaLinkRpcPermissionDeniedException.class, new SecurityAccessVerifyCodePairInvalidException(new VistaLinkFaultException("foo bar baz")));
64 }
65
66 public void testRpcNotInContextException() {
67 assertExceptionDuringRpc(VistaLinkRpcPermissionDeniedException.class, new RpcNotInContextFaultException(new VistaLinkFaultException("foo bar baz")));
68 }
69
70
71 public void testNoRpcContextException() {
72 assertExceptionDuringRpc(VistaLinkRpcInvalidApiUsageException.class, new NoRpcContextFaultException(new VistaLinkFaultException("foo bar baz")));
73 }
74
75 public void testRpcNotOkForProxyUseException() {
76 expectVistaLinkAppProxyConnection(TEST_DUZ);
77 expectRpcAndDefaultThrow(TEST_RPC_CONTEXT, TEST_RPC, new RpcNotOkForProxyUseException(new VistaLinkFaultException("foo bar baz")));
78
79 replay();
80
81 VistaLinkRpcTemplate t = new VistaLinkRpcTemplate(mockConnectionFactoryLocator);
82 try {
83 t.rpcAsApplication(TEST_DIVISION, TEST_DUZ, TEST_RPC_CONTEXT, TEST_RPC);
84 fail("expected permission denied exception");
85 } catch (VistaLinkRpcInvalidApiUsageException e) {
86 // NOOP
87 }
88 verify();
89 }
90
91 public void testLoginsDisabledException() {
92 assertExceptionDuringRpc(DataAccessResourceFailureException.class, new LoginsDisabledFaultException(new VistaLinkFaultException("foo bar baz")));
93 }
94
95 public void assertExceptionDuringRpc(Class expectedException, Throwable throwDuringRpc) {
96 expectVistaLinkDuzConnection(TEST_DUZ);
97 expectVistaLinkAppProxyConnection(TEST_DUZ);
98 expectRpcAndDefaultThrow(TEST_RPC_CONTEXT, TEST_RPC, throwDuringRpc);
99
100 replay();
101
102 VistaLinkRpcTemplate t = new VistaLinkRpcTemplate(mockConnectionFactoryLocator);
103 try {
104 t.rpcAsUser(TEST_DIVISION, TEST_DUZ, TEST_RPC_CONTEXT, TEST_RPC);
105 fail("expected " + expectedException.getName());
106 } catch (Exception e) {
107 assertTrue(expectedException.isAssignableFrom(e.getClass()));
108 }
109
110 try {
111 t.rpcAsApplication(TEST_DIVISION, TEST_DUZ, TEST_RPC_CONTEXT, TEST_RPC);
112 fail("expected " + expectedException.getName());
113 } catch (Exception e) {
114 assertTrue(expectedException.isAssignableFrom(e.getClass()));
115 }
116
117 verify();
118 }
119
120 protected String getStationNumber() {
121 return TEST_DIVISION;
122 }
123}
Note: See TracBrowser for help on using the repository browser.