Search in sources :

Example 6 with RestParam

use of io.servicecomb.common.rest.definition.RestParam in project java-chassis by ServiceComb.

the class RestCodec method argsToRest.

public static void argsToRest(Object[] args, RestOperationMeta restOperation, RestClientRequest clientRequest) throws Exception {
    int paramSize = restOperation.getParamList().size();
    if (paramSize == 0) {
        return;
    }
    if (paramSize != args.length) {
        throw new Exception("wrong number of arguments");
    }
    for (int idx = 0; idx < paramSize; idx++) {
        RestParam param = restOperation.getParamList().get(idx);
        param.getParamProcessor().setValue(clientRequest, args[idx]);
    }
}
Also used : InvocationException(io.servicecomb.core.exception.InvocationException) RestParam(io.servicecomb.common.rest.definition.RestParam)

Example 7 with RestParam

use of io.servicecomb.common.rest.definition.RestParam in project java-chassis by ServiceComb.

the class TestRestCodec method testRestToArgsInstanceExcetpion.

@Test
public void testRestToArgsInstanceExcetpion(@Mocked RestServerRequest request, @Mocked RestOperationMeta restOperation, @Mocked RestParam restParam, @Mocked ParamValueProcessor processer) throws Exception {
    List<RestParam> params = new ArrayList<>();
    params.add(restParam);
    InvocationException exception = new InvocationException(Status.BAD_REQUEST, "Parameter is not valid.");
    new Expectations() {

        {
            restOperation.getParamList();
            result = params;
            restParam.getParamProcessor();
            result = processer;
            processer.getValue(request);
            result = exception;
        }
    };
    boolean success = false;
    try {
        RestCodec.restToArgs(request, restOperation);
        success = true;
    } catch (InvocationException e) {
        Assert.assertEquals(e.getStatusCode(), Status.BAD_REQUEST.getStatusCode());
    }
    Assert.assertEquals(success, false);
}
Also used : Expectations(mockit.Expectations) InvocationException(io.servicecomb.core.exception.InvocationException) ArrayList(java.util.ArrayList) RestParam(io.servicecomb.common.rest.definition.RestParam) Test(org.junit.Test)

Example 8 with RestParam

use of io.servicecomb.common.rest.definition.RestParam in project java-chassis by ServiceComb.

the class TestRestCodec method testRestToArgsExcetpion.

@Test
public void testRestToArgsExcetpion(@Mocked RestServerRequest request, @Mocked RestOperationMeta restOperation, @Mocked RestParam restParam, @Mocked ParamValueProcessor processer) throws Exception {
    List<RestParam> params = new ArrayList<>();
    params.add(restParam);
    new Expectations() {

        {
            restOperation.getParamList();
            result = params;
            restParam.getParamProcessor();
            result = processer;
            processer.getValue(request);
            result = new Exception("bad request parame");
        }
    };
    boolean success = false;
    try {
        RestCodec.restToArgs(request, restOperation);
        success = true;
    } catch (InvocationException e) {
        Assert.assertEquals(590, e.getStatusCode());
        Assert.assertEquals("Parameter is not valid.", ((CommonExceptionData) e.getErrorData()).getMessage());
    }
    Assert.assertEquals(success, false);
}
Also used : Expectations(mockit.Expectations) InvocationException(io.servicecomb.core.exception.InvocationException) ArrayList(java.util.ArrayList) CommonExceptionData(io.servicecomb.core.exception.CommonExceptionData) InvocationException(io.servicecomb.core.exception.InvocationException) RestParam(io.servicecomb.common.rest.definition.RestParam) Test(org.junit.Test)

Example 9 with RestParam

use of io.servicecomb.common.rest.definition.RestParam in project java-chassis by ServiceComb.

the class TestGenericServletMockRequest method testGenericServletMockRequest.

@Test
public void testGenericServletMockRequest() throws Exception {
    Invocation invocation = Mockito.mock(Invocation.class);
    OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
    RestOperationMeta swaggerOperation = Mockito.mock(RestOperationMeta.class);
    Mockito.when(operationMeta.getExtData(RestConst.SWAGGER_REST_OPERATION)).thenReturn(swaggerOperation);
    GenericServletMockRequest lGenericServletMockRequest = new GenericServletMockRequest(invocation);
    URLPathBuilder uRLPathBuilder = Mockito.mock(URLPathBuilder.class);
    Mockito.when(swaggerOperation.getPathBuilder()).thenReturn(uRLPathBuilder);
    Mockito.when(swaggerOperation.getPathBuilder().createPathString(null)).thenReturn("test");
    RestParam param = Mockito.mock(RestParam.class);
    Mockito.when(swaggerOperation.getParamByName("1")).thenReturn(param);
    Mockito.when(param.getValue(null)).thenReturn("1");
    List<RestParam> restParam = new ArrayList<>();
    restParam.add(param);
    Mockito.when(swaggerOperation.getParamList()).thenReturn(restParam);
    Assert.assertEquals("1", lGenericServletMockRequest.getParameter("1"));
    Assert.assertNull(lGenericServletMockRequest.getParameterValues("1"));
    Assert.assertEquals("1", lGenericServletMockRequest.getHeader("1"));
    Assert.assertEquals(1, lGenericServletMockRequest.getIntHeader("1"));
    Assert.assertEquals("test", lGenericServletMockRequest.getServletPath());
    Mockito.when(swaggerOperation.getParamByName("test")).thenReturn(null);
    Assert.assertEquals(null, lGenericServletMockRequest.getParameter("test"));
    Assert.assertNull(lGenericServletMockRequest.getParameterValues("test"));
    Map<String, String[]> paramMap = new HashMap<String, String[]>();
    paramMap.put(null, null);
    Assert.assertEquals(paramMap, lGenericServletMockRequest.getParameterMap());
    try {
        lGenericServletMockRequest.getAttribute("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getAttributeNames();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getCharacterEncoding();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.setCharacterEncoding("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getContentLength();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getContentLengthLong();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getContentType();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getInputStream();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getParameterNames();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getProtocol();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getScheme();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getServerName();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getServerPort();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getReader();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRemoteAddr();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRemoteHost();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.setAttribute("", "");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.removeAttribute("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getLocale();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getLocales();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isSecure();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRequestDispatcher("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRealPath("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRemotePort();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getLocalName();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getLocalAddr();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getLocalPort();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getServletContext();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.startAsync();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.startAsync(null, null);
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isAsyncStarted();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isAsyncSupported();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getAsyncContext();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getDispatcherType();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getAuthType();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getCookies();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getDateHeader("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getHeaders("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getHeaderNames();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getPathTranslated();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getContextPath();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getQueryString();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRemoteUser();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isUserInRole("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getUserPrincipal();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRequestedSessionId();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRequestURI();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getRequestURL();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getSession(true);
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getSession();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.changeSessionId();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isRequestedSessionIdValid();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isRequestedSessionIdFromCookie();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isRequestedSessionIdFromURL();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.isRequestedSessionIdFromUrl();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.authenticate(null);
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.login("", "");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.logout();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getParts();
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.getPart("");
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    try {
        lGenericServletMockRequest.upgrade(null);
    } catch (Error e) {
        Assert.assertEquals("not supported method", e.getMessage());
    }
    Assert.assertNull(lGenericServletMockRequest.getMethod());
    Assert.assertEquals("test", lGenericServletMockRequest.getPathInfo());
}
Also used : Invocation(io.servicecomb.core.Invocation) RestOperationMeta(io.servicecomb.common.rest.definition.RestOperationMeta) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) URLPathBuilder(io.servicecomb.common.rest.definition.path.URLPathBuilder) OperationMeta(io.servicecomb.core.definition.OperationMeta) RestOperationMeta(io.servicecomb.common.rest.definition.RestOperationMeta) RestParam(io.servicecomb.common.rest.definition.RestParam) Test(org.junit.Test)

Example 10 with RestParam

use of io.servicecomb.common.rest.definition.RestParam in project java-chassis by ServiceComb.

the class GenericServletMockRequest method getParameter.

@Override
public String getParameter(String name) {
    RestParam param = swaggerOperation.getParamByName(name);
    if (param == null) {
        return null;
    }
    Object value = param.getValue(args);
    if (value == null) {
        return null;
    }
    return String.valueOf(value);
}
Also used : RestParam(io.servicecomb.common.rest.definition.RestParam)

Aggregations

RestParam (io.servicecomb.common.rest.definition.RestParam)10 InvocationException (io.servicecomb.core.exception.InvocationException)4 ArrayList (java.util.ArrayList)3 Test (org.junit.Test)3 RestOperationMeta (io.servicecomb.common.rest.definition.RestOperationMeta)2 HashMap (java.util.HashMap)2 Expectations (mockit.Expectations)2 LocalRestServerRequest (io.servicecomb.common.rest.codec.LocalRestServerRequest)1 RestServerRequest (io.servicecomb.common.rest.codec.RestServerRequest)1 URLPathBuilder (io.servicecomb.common.rest.definition.path.URLPathBuilder)1 Invocation (io.servicecomb.core.Invocation)1 OperationMeta (io.servicecomb.core.definition.OperationMeta)1 CommonExceptionData (io.servicecomb.core.exception.CommonExceptionData)1 HeaderParameter (io.swagger.models.parameters.HeaderParameter)1 Parameter (io.swagger.models.parameters.Parameter)1 IOException (java.io.IOException)1 BeforeClass (org.junit.BeforeClass)1