org.springframework.mock.web

## Class MockMultipartHttpServletRequest

- java.lang.Object
- - org.springframework.mock.web.MockHttpServletRequest
  - - org.springframework.mock.web.MockMultipartHttpServletRequest

- All Implemented Interfaces:
    HttpServletRequest, ServletRequest, MultipartHttpServletRequest, MultipartRequest

      public class MockMultipartHttpServletRequest
      extends MockHttpServletRequest
      implements MultipartHttpServletRequest

  Mock implementation of the `MultipartHttpServletRequest` interface.

  Useful for testing application controllers that access multipart uploads. The `MockMultipartFile` can be used to populate these mock requests with files.

  Since:
    2.0
  Author:
    Juergen Hoeller, Eric Crampton, Arjen Poutsma
  See Also:
    `MockMultipartFile`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.mock.web.MockHttpServletRequest

      `DEFAULT_PROTOCOL, DEFAULT_REMOTE_ADDR, DEFAULT_REMOTE_HOST, DEFAULT_SERVER_ADDR, DEFAULT_SERVER_NAME, DEFAULT_SERVER_PORT`

    - ### Fields inherited from interface javax.servlet.http.HttpServletRequest

      `BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MockMultipartHttpServletRequest()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFile(MultipartFile file)` Add a file to this request.
    `MultipartFile` | `getFile(String name)` Return the contents plus description of an uploaded file in this request, or `null` if it does not exist.
    `Map<String,MultipartFile>` | `getFileMap()` Return a `Map` of the multipart files contained in this request.
    `Iterator<String>` | `getFileNames()` Return an `Iterator` of String objects containing the parameter names of the multipart files contained in this request.
    `List<MultipartFile>` | `getFiles(String name)` Return the contents plus description of uploaded files in this request, or an empty list if it does not exist.
    `MultiValueMap<String,MultipartFile>` | `getMultiFileMap()` Return a `MultiValueMap` of the multipart files contained in this request.
    `String` | `getMultipartContentType(String paramOrFileName)` Determine the content type of the specified request part.
    `HttpHeaders` | `getMultipartHeaders(String paramOrFileName)` Return the headers associated with the specified part of the multipart request.
    `HttpHeaders` | `getRequestHeaders()` Return this request's headers as a convenient HttpHeaders instance.
    `HttpMethod` | `getRequestMethod()` Return this request's method as a convenient HttpMethod instance.

    - ### Methods inherited from class org.springframework.mock.web.MockHttpServletRequest

      `addHeader, addParameter, addParameter, addParameters, addPreferredLocale, addUserRole, authenticate, checkActive, clearAttributes, close, getAttribute, getAttributeNames, getAuthType, getCharacterEncoding, getContentLength, getContentType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getInputStream, getIntHeader, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getMethod, getParameter, getParameterMap, getParameterNames, getParameterValues, getPathInfo, getPathTranslated, getProtocol, getQueryString, getReader, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRemoteUser, getRequestDispatcher, getRequestedSessionId, getRequestURI, getRequestURL, getScheme, getServerName, getServerPort, getServletContext, getServletPath, getSession, getSession, getUserPrincipal, invalidate, isActive, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isSecure, isUserInRole, login, logout, removeAllParameters, removeAttribute, removeParameter, setAttribute, setAuthType, setCharacterEncoding, setContent, setContentType, setContextPath, setCookies, setLocalAddr, setLocalName, setLocalPort, setMethod, setParameter, setParameter, setParameters, setPathInfo, setPreferredLocales, setProtocol, setQueryString, setRemoteAddr, setRemoteHost, setRemotePort, setRemoteUser, setRequestedSessionId, setRequestedSessionIdFromCookie, setRequestedSessionIdFromURL, setRequestedSessionIdValid, setRequestURI, setScheme, setSecure, setServerName, setServerPort, setServletPath, setSession, setUserPrincipal`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.servlet.http.HttpServletRequest

      `authenticate, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isUserInRole, login, logout`

    - ### Methods inherited from interface javax.servlet.ServletRequest

      `getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getReader, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync`

- - ### Constructor Detail

    - #### MockMultipartHttpServletRequest

          public MockMultipartHttpServletRequest()

  - ### Method Detail

    - #### addFile

          public void addFile(MultipartFile file)

      Add a file to this request. The parameter name from the multipart form is taken from the `MultipartFile.getName()`.
      Parameters:
        `file` - multipart file to be added

    - #### getFileNames

          public Iterator<String> getFileNames()

      Description copied from interface: `MultipartRequest`
      Return an `Iterator` of String objects containing the parameter names of the multipart files contained in this request. These are the field names of the form (like with normal parameters), not the original file names.
      Specified by:
        `getFileNames` in interface `MultipartRequest`
      Returns:
        the names of the files

    - #### getFile

          public MultipartFile getFile(String name)

      Description copied from interface: `MultipartRequest`
      Return the contents plus description of an uploaded file in this request, or `null` if it does not exist.
      Specified by:
        `getFile` in interface `MultipartRequest`
      Parameters:
        `name` - a String specifying the parameter name of the multipart file
      Returns:
        the uploaded content in the form of a `MultipartFile` object

    - #### getFiles

          public List<MultipartFile> getFiles(String name)

      Description copied from interface: `MultipartRequest`
      Return the contents plus description of uploaded files in this request, or an empty list if it does not exist.
      Specified by:
        `getFiles` in interface `MultipartRequest`
      Parameters:
        `name` - a String specifying the parameter name of the multipart file
      Returns:
        the uploaded content in the form of a `MultipartFile` list

    - #### getFileMap

          public Map<String,MultipartFile> getFileMap()

      Description copied from interface: `MultipartRequest`
      Return a `Map` of the multipart files contained in this request.
      Specified by:
        `getFileMap` in interface `MultipartRequest`
      Returns:
        a map containing the parameter names as keys, and the `MultipartFile` objects as values

    - #### getMultiFileMap

          public MultiValueMap<String,MultipartFile> getMultiFileMap()

      Description copied from interface: `MultipartRequest`
      Return a `MultiValueMap` of the multipart files contained in this request.
      Specified by:
        `getMultiFileMap` in interface `MultipartRequest`
      Returns:
        a map containing the parameter names as keys, and a list of `MultipartFile` objects as values

    - #### getMultipartContentType

          public String getMultipartContentType(String paramOrFileName)

      Description copied from interface: `MultipartRequest`
      Determine the content type of the specified request part.
      Specified by:
        `getMultipartContentType` in interface `MultipartRequest`
      Parameters:
        `paramOrFileName` - the name of the part
      Returns:
        the associated content type, or `null` if not defined

    - #### getRequestMethod

          public HttpMethod getRequestMethod()

      Description copied from interface: `MultipartHttpServletRequest`
      Return this request's method as a convenient HttpMethod instance.
      Specified by:
        `getRequestMethod` in interface `MultipartHttpServletRequest`

    - #### getRequestHeaders

          public HttpHeaders getRequestHeaders()

      Description copied from interface: `MultipartHttpServletRequest`
      Return this request's headers as a convenient HttpHeaders instance.
      Specified by:
        `getRequestHeaders` in interface `MultipartHttpServletRequest`

    - #### getMultipartHeaders

          public HttpHeaders getMultipartHeaders(String paramOrFileName)

      Description copied from interface: `MultipartHttpServletRequest`
      Return the headers associated with the specified part of the multipart request.

      If the underlying implementation supports access to headers, then all headers are returned. Otherwise, the returned headers will include a 'Content-Type' header at the very least.

      Specified by:
        `getMultipartHeaders` in interface `MultipartHttpServletRequest`