Operation Step
Operation steps let the test authors perform requests to the server based on the
SupportedOperations
advertised by Hydra API Documentation or inlined in the resource representation.
Syntax
- Operation steps are valid where representation is the context.
- Operation steps are also valid on top level.
- Operation has a single child step
Invoke
.
Usage
Top-level scenario step
The simplest use of an operation is to place it in the root of a test scenario so that it will be invoked as soon as any resource representation which supports it is analysed.
With Operation <http://example.com/vocab#CreateIssueOperation> {
Invoke {
Expect Status 201
}
}
Context-specific operation
An operation can be limited in scope to a specific Class
or
anywhere else where representation steps are valid, such as Property
.
Thus, the child invocations will only be performed when the operation is found within
a specific client state.
With Class <http://example.com/vocab#Task> {
With Operation <http://example.com/vocab#CancelTask> {
Invoke {
Expect Status 204
}
}
}
Making operation mandatory
Just like with the Property
step, a missing operation can be
reported as a test failure by swapping With
modifier for Expect
.
With Class <http://example.com/vocab#Task> {
// Will report error if operation is not found
Expect Operation <http://example.com/vocab#CancelTask> {
Invoke {
Expect Status 204
}
}
}
Child invocations can also be skipped to only check that the operation is
supported. If a top-level With Operation
is found it will still be executed.
With Class <http://example.com/vocab#Task> {
Expect Operation <http://example.com/vocab#CancelTask>
}
With Operation <http://example.com/vocab#CancelTask> {
Invoke {
// ...
}
}