com.tngtech.jgiven.attachment
Class Attachment

java.lang.Object
  extended by com.tngtech.jgiven.attachment.Attachment

public class Attachment
extends java.lang.Object

Represents an attachment of a step. Attachments must be representable as a String so that it can be stored as JSON. For binary attachments this means that they have to be encoded with Base64. In addition, attachments must have a media type so that reporters know how to present an attachment.

Since:
0.7.0

Constructor Summary
protected Attachment(java.lang.String content, MediaType mediaType)
          Convenience constructor, where title is set to null
protected Attachment(java.lang.String content, MediaType mediaType, java.lang.String title)
          Creates a new instance of this Attachment
 
Method Summary
 java.lang.String content()
          The content of the attachment represented as a string.
static Attachment fromBase64(java.lang.String base64encodedContent, MediaType mediaType)
          Equivalent to Attachment(String, MediaType)
static Attachment fromBinaryBytes(byte[] bytes, MediaType mediaType)
          Creates an attachment from a given array of bytes.
static Attachment fromBinaryFile(java.io.File file, MediaType mediaType)
          Creates an attachment from the given binary file file.
static Attachment fromBinaryInputStream(java.io.InputStream inputStream, MediaType mediaType)
          Creates an attachment from a binary input stream.
static Attachment fromText(java.lang.String content, MediaType mediaType)
          Equivalent to Attachment(String, MediaType)
static Attachment fromTextFile(java.io.File file, MediaType mediaType)
          Creates a non-binary attachment from the given file.
static Attachment fromTextFile(java.io.File file, MediaType mediaType, java.nio.charset.Charset charSet)
          Deprecated. use fromTextFile without charSet with a mediaType that has a specified charSet
static Attachment fromTextInputStream(java.io.InputStream inputStream, MediaType mediaType)
          Creates a non-binary attachment from the given file.
static Attachment fromTextInputStream(java.io.InputStream inputStream, MediaType mediaType, java.nio.charset.Charset charset)
          Deprecated. use fromTextInputStream without charSet with a mediaType that has a specified charSet
 MediaType getMediaType()
          The type of the attachment.
 java.lang.String getTitle()
          An optional title
static Attachment json(java.lang.String content)
          Creates a text attachment with the given content with media type application/json.
static Attachment plainText(java.lang.String content)
          Creates a text attachment with the given content with media type text/plain.
 java.lang.String title()
          An optional title of the attachment.
 Attachment withTitle(java.lang.String title)
          Sets the title and returns this
static Attachment xml(java.lang.String content)
          Creates a text attachment with the given content with media type text/xml.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Attachment

protected Attachment(java.lang.String content,
                     MediaType mediaType)
Convenience constructor, where title is set to null


Attachment

protected Attachment(java.lang.String content,
                     MediaType mediaType,
                     java.lang.String title)
Creates a new instance of this Attachment

Parameters:
content - the content of this attachment. In case of a binary attachment, this must be Base64 encoded. Must not be null
mediaType - the mediaType. Must not be null
title - an optional title, may be null
Method Detail

title

public java.lang.String title()
An optional title of the attachment. The title can be used by reporters, e.g. as a tooltip. Can be null.


content

public java.lang.String content()
The content of the attachment represented as a string. Binary attachments must be encoded in Base64 format.


getMediaType

public MediaType getMediaType()
The type of the attachment. It depends on the reporter how this information is used.


getTitle

public java.lang.String getTitle()
An optional title


withTitle

public Attachment withTitle(java.lang.String title)
Sets the title and returns this


fromBinaryBytes

public static Attachment fromBinaryBytes(byte[] bytes,
                                         MediaType mediaType)
Creates an attachment from a given array of bytes. The bytes will be Base64 encoded.

Throws:
java.lang.IllegalArgumentException - if mediaType is not binary

fromBinaryInputStream

public static Attachment fromBinaryInputStream(java.io.InputStream inputStream,
                                               MediaType mediaType)
                                        throws java.io.IOException
Creates an attachment from a binary input stream. The content of the stream will be transformed into a Base64 encoded string

Throws:
java.io.IOException - if an I/O error occurs
java.lang.IllegalArgumentException - if mediaType is not binary

fromBinaryFile

public static Attachment fromBinaryFile(java.io.File file,
                                        MediaType mediaType)
                                 throws java.io.IOException
Creates an attachment from the given binary file file. The content of the file will be transformed into a Base64 encoded string.

Throws:
java.io.IOException - if an I/O error occurs
java.lang.IllegalArgumentException - if mediaType is not binary

fromTextFile

@Deprecated
public static Attachment fromTextFile(java.io.File file,
                                                 MediaType mediaType,
                                                 java.nio.charset.Charset charSet)
                               throws java.io.IOException
Deprecated. use fromTextFile without charSet with a mediaType that has a specified charSet

Creates a non-binary attachment from the given file.

Throws:
java.io.IOException - if an I/O error occurs
java.lang.IllegalArgumentException - if mediaType is binary

fromTextFile

public static Attachment fromTextFile(java.io.File file,
                                      MediaType mediaType)
                               throws java.io.IOException
Creates a non-binary attachment from the given file.

Throws:
java.io.IOException - if an I/O error occurs
java.lang.IllegalArgumentException - if mediaType is either binary or has no specified charset

fromTextInputStream

@Deprecated
public static Attachment fromTextInputStream(java.io.InputStream inputStream,
                                                        MediaType mediaType,
                                                        java.nio.charset.Charset charset)
                                      throws java.io.IOException
Deprecated. use fromTextInputStream without charSet with a mediaType that has a specified charSet

Creates a non-binary attachment from the given file.

Throws:
java.io.IOException - if an I/O error occurs
java.lang.IllegalArgumentException - if mediaType is binary

fromTextInputStream

public static Attachment fromTextInputStream(java.io.InputStream inputStream,
                                             MediaType mediaType)
                                      throws java.io.IOException
Creates a non-binary attachment from the given file.

Throws:
java.io.IOException - if an I/O error occurs
java.lang.IllegalArgumentException - if mediaType is either binary or has no specified charset

fromText

public static Attachment fromText(java.lang.String content,
                                  MediaType mediaType)
Equivalent to Attachment(String, MediaType)

Throws:
java.lang.IllegalArgumentException - if mediaType is binary

plainText

public static Attachment plainText(java.lang.String content)
Creates a text attachment with the given content with media type text/plain.

Parameters:
content - the content of the attachment

xml

public static Attachment xml(java.lang.String content)
Creates a text attachment with the given content with media type text/xml.

Parameters:
content - the content of the attachment

json

public static Attachment json(java.lang.String content)
Creates a text attachment with the given content with media type application/json.

Parameters:
content - the content of the attachment

fromBase64

public static Attachment fromBase64(java.lang.String base64encodedContent,
                                    MediaType mediaType)
Equivalent to Attachment(String, MediaType)

Throws:
java.lang.IllegalArgumentException - if mediaType is not binary