use of com.google.gwt.user.server.rpc.RPC in project pentaho-platform by pentaho.
the class AbstractGwtRpcTest method testInvokeServiceClassDoesNotNeedToImplementServiceInterface.
@Test
public void testInvokeServiceClassDoesNotNeedToImplementServiceInterface() throws NoSuchMethodException, SerializationException {
ServiceClassWhichDoesNotImplementInterface target = new ServiceClassWhichDoesNotImplementInterface();
Method targetMethod = target.getClass().getMethod("method", String.class);
ClassLoader targetClassLoader = mock(ClassLoader.class);
Method serviceMethod = ServiceInterface.class.getMethod("method", String.class);
Object[] rpcParameters = new Object[] { "id1" };
SerializationPolicy policy = mock(SerializationPolicy.class);
RPCRequest rpcRequest = new RPCRequest(serviceMethod, rpcParameters, policy, 0);
HttpServletRequest httpRequestMock = mock(HttpServletRequest.class);
String response = "rpc response";
TestGwtRpc gwtRpcSpy = spy(new TestGwtRpc(httpRequestMock));
doReturn(target).when(gwtRpcSpy).getTarget();
doReturn(targetClassLoader).when(gwtRpcSpy).getTargetClassLoader();
doReturn(rpcRequest).when(gwtRpcSpy).getRequest();
// Proven if the correct targetMethod is received at this call.
try (MockedStatic<RPC> rpc = Mockito.mockStatic(RPC.class)) {
rpc.when(() -> RPC.invokeAndEncodeResponse(target, targetMethod, rpcParameters, policy)).thenReturn(response);
String result = gwtRpcSpy.invoke();
assertEquals(response, result);
rpc.verify(() -> RPC.invokeAndEncodeResponse(target, targetMethod, rpcParameters, policy));
RPC.invokeAndEncodeResponse(target, targetMethod, rpcParameters, policy);
}
}
use of com.google.gwt.user.server.rpc.RPC in project pentaho-platform by pentaho.
the class AbstractGwtRpcTest method testGetRequestLogsAndWrapsThrownIncompatibleRemoteServiceException.
@Test
public void testGetRequestLogsAndWrapsThrownIncompatibleRemoteServiceException() {
String requestPayload = "REQUEST_PAYLOAD";
// new Object would have a null class loader!
Object target = this;
IncompatibleRemoteServiceException error = new IncompatibleRemoteServiceException();
HttpServletRequest httpRequestMock = mock(HttpServletRequest.class);
TestGwtRpc gwtRpcSpy = spy(new TestGwtRpc(httpRequestMock));
doReturn(requestPayload).when(gwtRpcSpy).getRequestPayload();
doReturn(target).when(gwtRpcSpy).resolveTarget();
try (MockedStatic<RPC> rpc = Mockito.mockStatic(RPC.class)) {
rpc.when(() -> RPC.decodeRequest(eq(requestPayload), eq(null), any())).thenThrow(error);
try {
gwtRpcSpy.getRequest();
fail();
} catch (GwtRpcProxyException ex) {
assertEquals(error, ex.getCause());
verify(loggerMock).error(nullable(String.class), eq(error));
}
}
}
use of com.google.gwt.user.server.rpc.RPC in project pentaho-platform by pentaho.
the class AbstractGwtRpcTest method testGetDefaultSerializationPolicyDelegatesToRPCClass.
// endregion
// region static getDefaultSerializationPolicy
@Test
public void testGetDefaultSerializationPolicyDelegatesToRPCClass() {
SerializationPolicy defaultPolicyMock = mock(SerializationPolicy.class);
try (MockedStatic<RPC> rpc = Mockito.mockStatic(RPC.class)) {
rpc.when(RPC::getDefaultSerializationPolicy).thenReturn(defaultPolicyMock);
SerializationPolicy result = AbstractGwtRpc.getDefaultSerializationPolicy();
assertEquals(defaultPolicyMock, result);
}
}
use of com.google.gwt.user.server.rpc.RPC in project pentaho-platform by pentaho.
the class AbstractGwtRpcTest method testGetRequestFirstTime.
// endregion
// region Request
@Test
public void testGetRequestFirstTime() {
String requestPayload = "REQUEST_PAYLOAD";
// new Object would have a null class loader!
Object target = this;
RPCRequest rpcRequest = new RPCRequest(null, null, null, 0);
HttpServletRequest httpRequestMock = mock(HttpServletRequest.class);
TestGwtRpc gwtRpcSpy = spy(new TestGwtRpc(httpRequestMock));
doReturn(requestPayload).when(gwtRpcSpy).getRequestPayload();
doReturn(target).when(gwtRpcSpy).resolveTarget();
try (MockedStatic<RPC> rpc = Mockito.mockStatic(RPC.class)) {
rpc.when(() -> RPC.decodeRequest(eq(requestPayload), eq(null), any())).thenReturn(rpcRequest);
RPCRequest result = gwtRpcSpy.getRequest();
assertEquals(rpcRequest, result);
}
}
Aggregations