org.springframework.mock.web
Class MockMultipartFile

java.lang.Object
  extended by org.springframework.mock.web.MockMultipartFile
All Implemented Interfaces:
MultipartFile

public class MockMultipartFile
extends java.lang.Object
implements MultipartFile

Mock implementation of the MultipartFile interface.

Useful in conjunction with a MockMultipartHttpServletRequest for testing application controllers that access multipart uploads.

Since:
2.0
Author:
Juergen Hoeller, Eric Crampton
See Also:
MockMultipartHttpServletRequest

Field Summary
private  byte[] content
           
private  java.lang.String contentType
           
private  java.lang.String name
           
private  java.lang.String originalFilename
           
 
Constructor Summary
MockMultipartFile(java.lang.String name, byte[] content)
          Create a new MockMultipartFile with the given content.
MockMultipartFile(java.lang.String name, java.io.InputStream contentStream)
          Create a new MockMultipartFile with the given content.
MockMultipartFile(java.lang.String name, java.lang.String originalFilename, java.lang.String contentType, byte[] content)
          Create a new MockMultipartFile with the given content.
MockMultipartFile(java.lang.String name, java.lang.String originalFilename, java.lang.String contentType, java.io.InputStream contentStream)
          Create a new MockMultipartFile with the given content.
 
Method Summary
 byte[] getBytes()
          Return the contents of the file as an array of bytes.
 java.lang.String getContentType()
          Return the content type of the file.
 java.io.InputStream getInputStream()
          Return an InputStream to read the contents of the file from.
 java.lang.String getName()
          Return the name of the parameter in the multipart form.
 java.lang.String getOriginalFilename()
          Return the original filename in the client's filesystem.
 long getSize()
          Return the size of the file in bytes.
 boolean isEmpty()
          Return whether the uploaded file is empty, that is, either no file has been chosen in the multipart form or the chosen file has no content.
 void transferTo(java.io.File dest)
          Transfer the received file to the given destination file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

name

private final java.lang.String name

originalFilename

private java.lang.String originalFilename

contentType

private java.lang.String contentType

content

private final byte[] content
Constructor Detail

MockMultipartFile

public MockMultipartFile(java.lang.String name,
                         byte[] content)
Create a new MockMultipartFile with the given content.

Parameters:
name - the name of the file
content - the content of the file

MockMultipartFile

public MockMultipartFile(java.lang.String name,
                         java.io.InputStream contentStream)
                  throws java.io.IOException
Create a new MockMultipartFile with the given content.

Parameters:
name - the name of the file
contentStream - the content of the file as stream
Throws:
java.io.IOException - if reading from the stream failed

MockMultipartFile

public MockMultipartFile(java.lang.String name,
                         java.lang.String originalFilename,
                         java.lang.String contentType,
                         byte[] content)
Create a new MockMultipartFile with the given content.

Parameters:
name - the name of the file
originalFilename - the original filename (as on the client's machine)
contentType - the content type (if known)
content - the content of the file

MockMultipartFile

public MockMultipartFile(java.lang.String name,
                         java.lang.String originalFilename,
                         java.lang.String contentType,
                         java.io.InputStream contentStream)
                  throws java.io.IOException
Create a new MockMultipartFile with the given content.

Parameters:
name - the name of the file
originalFilename - the original filename (as on the client's machine)
contentType - the content type (if known)
contentStream - the content of the file as stream
Throws:
java.io.IOException - if reading from the stream failed
Method Detail

getName

public java.lang.String getName()
Description copied from interface: MultipartFile
Return the name of the parameter in the multipart form.

Specified by:
getName in interface MultipartFile
Returns:
the name of the parameter (never null or empty)

getOriginalFilename

public java.lang.String getOriginalFilename()
Description copied from interface: MultipartFile
Return the original filename in the client's filesystem.

This may contain path information depending on the browser used, but it typically will not with any other than Opera.

Specified by:
getOriginalFilename in interface MultipartFile
Returns:
the original filename, or the empty String if no file has been chosen in the multipart form

getContentType

public java.lang.String getContentType()
Description copied from interface: MultipartFile
Return the content type of the file.

Specified by:
getContentType in interface MultipartFile
Returns:
the content type, or null if not defined (or no file has been chosen in the multipart form)

isEmpty

public boolean isEmpty()
Description copied from interface: MultipartFile
Return whether the uploaded file is empty, that is, either no file has been chosen in the multipart form or the chosen file has no content.

Specified by:
isEmpty in interface MultipartFile

getSize

public long getSize()
Description copied from interface: MultipartFile
Return the size of the file in bytes.

Specified by:
getSize in interface MultipartFile
Returns:
the size of the file, or 0 if empty

getBytes

public byte[] getBytes()
                throws java.io.IOException
Description copied from interface: MultipartFile
Return the contents of the file as an array of bytes.

Specified by:
getBytes in interface MultipartFile
Returns:
the contents of the file as bytes, or an empty byte array if empty
Throws:
java.io.IOException - in case of access errors (if the temporary store fails)

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException
Description copied from interface: MultipartFile
Return an InputStream to read the contents of the file from. The user is responsible for closing the stream.

Specified by:
getInputStream in interface MultipartFile
Returns:
the contents of the file as stream, or an empty stream if empty
Throws:
java.io.IOException - in case of access errors (if the temporary store fails)

transferTo

public void transferTo(java.io.File dest)
                throws java.io.IOException,
                       java.lang.IllegalStateException
Description copied from interface: MultipartFile
Transfer the received file to the given destination file.

This may either move the file in the filesystem, copy the file in the filesystem, or save memory-held contents to the destination file. If the destination file already exists, it will be deleted first.

If the file has been moved in the filesystem, this operation cannot be invoked again. Therefore, call this method just once to be able to work with any storage mechanism.

Specified by:
transferTo in interface MultipartFile
Parameters:
dest - the destination file
Throws:
java.io.IOException - in case of reading or writing errors
java.lang.IllegalStateException - if the file has already been moved in the filesystem and is not available anymore for another transfer