HttpResponseTestCase

smithy.test.HttpResponseTestCase
See theHttpResponseTestCase companion object
final case class HttpResponseTestCase(id: String, protocol: ShapeId, code: Int, authScheme: Option[ShapeId], headers: Option[Map[String, String]], forbidHeaders: Option[List[String]], requireHeaders: Option[List[String]], body: Option[String], bodyMediaType: Option[String], params: Option[Document], vendorParams: Option[Document], vendorParamsShape: Option[ShapeId], documentation: Option[String], tags: Option[List[NonEmptyString]], appliesTo: Option[AppliesTo])

Value parameters

appliesTo

Indicates that the test case is only to be implemented by "client" or "server" implementations. This property is useful for identifying and testing edge cases of clients and servers that are impossible or undesirable to test in both client and server implementations.

authScheme

The optional authentication scheme shape ID to assume. It's possible that specific authentication schemes might influence the serialization logic of an HTTP response.

body

Defines the HTTP message body. If no response body is defined, then no assertions are made about the body of the message.

bodyMediaType

The media type of the body. This is used to help test runners to parse and validate the expected data against generated data. Binary media type formats require that the contents of body are base64 encoded.

code

Defines the HTTP response code.

documentation

A description of the test and what is being asserted.

forbidHeaders

A list of header field names that must not appear.

headers

A map of expected HTTP headers. Each key represents a header field name and each value represents the expected header value. An HTTP response is not in compliance with the protocol if any listed header is missing from the serialized response or if the expected header value differs from the serialized response value. headers applies no constraints on additional headers.

id

The identifier of the test case. This identifier can be used by protocol test implementations to filter out unsupported test cases by ID, to generate test case names, etc. The provided id MUST match Smithy's identifier ABNF. No two httpResponseTests test cases can share the same ID.

params

Defines the output parameters deserialized from the HTTP response. These parameters MUST be compatible with the output of the operation.

protocol

The shape ID of the protocol to test.

requireHeaders

A list of header field names that must appear in the serialized HTTP message, but no assertion is made on the value. Headers listed in headers map do not need to appear in this list.

tags

Applies a list of tags to the test.

vendorParams

Defines vendor-specific parameters that are used to influence the response. For example, some vendors might utilize environment variables, configuration files on disk, or other means to influence the serialization formats used by clients or servers. If a vendorParamsShape is set, these parameters MUST be compatible with that shape's definition.

vendorParamsShape

A shape to be used to validate the vendorParams member contents. If set, the parameters in vendorParams MUST be compatible with this shape's definition.

Attributes

Companion
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product