How to use Fixture class of given.an.empty.spec package

Best Spectrum code snippet using given.an.empty.spec.Fixture

Source:RequestFixture.java Github

copy

Full Screen

...25import ratpack.http.Response;26import ratpack.registry.RegistrySpec;27import ratpack.server.ServerConfig;28import ratpack.server.ServerConfigBuilder;29import ratpack.test.handling.internal.DefaultRequestFixture;30import ratpack.test.http.MultipartFileSpec;31import ratpack.test.http.MultipartFormSpec;32import java.util.Map;33/**34 * A contrived request environment, suitable for unit testing {@link Handler} implementations.35 * <p>36 * A request fixture emulates a request, <b>and</b> the effective state of the request handling in the handler pipeline.37 * <p>38 * A request fixture can be obtained by the {@link RequestFixture#requestFixture()} method.39 * However it is often more convenient to use the alternative {@link RequestFixture#handle(Handler, Action)} method.40 *41 * @see #handle(Handler)42 */43public interface RequestFixture {44 /**45 * Unit test a single {@link Handler}.46 *47 * <pre class="java">{@code48 * import ratpack.handling.Context;49 * import ratpack.handling.Handler;50 * import ratpack.test.handling.RequestFixture;51 * import ratpack.test.handling.HandlingResult;52 *53 * import static org.junit.Assert.assertEquals;54 *55 * public class Example {56 *57 * public static class MyHandler implements Handler {58 * public void handle(Context ctx) throws Exception {59 * String outputHeaderValue = ctx.getRequest().getHeaders().get("input-value") + ":bar";60 * ctx.getResponse().getHeaders().set("output-value", outputHeaderValue);61 * ctx.render("received: " + ctx.getRequest().getPath());62 * }63 * }64 *65 * public static void main(String[] args) throws Exception {66 * HandlingResult result = RequestFixture.handle(new MyHandler(), fixture ->67 * fixture.header("input-value", "foo").uri("some/path")68 * );69 *70 * assertEquals("received: some/path", result.rendered(String.class));71 * assertEquals("foo:bar", result.getHeaders().get("output-value"));72 * }73 * }74 * }</pre>75 *76 * @param handler The handler to invoke77 * @param action The configuration of the context for the handler78 * @return A result object indicating what happened79 * @throws HandlerTimeoutException if the handler takes more than {@link RequestFixture#timeout(int)} seconds to send a response or call {@code next()} on the context80 * @throws Exception any thrown by {@code action}81 * @see #handle(Action, Action)82 */83 @SuppressWarnings("overloads")84 static HandlingResult handle(Handler handler, Action<? super RequestFixture> action) throws Exception {85 RequestFixture requestFixture = requestFixture();86 action.execute(requestFixture);87 return requestFixture.handle(handler);88 }89 /**90 * Unit test a {@link Handler} chain.91 *92 * <pre class="java">{@code93 * import ratpack.func.Action;94 * import ratpack.handling.Chain;95 * import ratpack.test.handling.RequestFixture;96 * import ratpack.test.handling.HandlingResult;97 *98 * import static org.junit.Assert.assertEquals;99 *100 * public class Example {101 *102 * public static class MyHandlers implements Action<Chain> {103 * public void execute(Chain chain) throws Exception {104 * chain.all(ctx -> {105 * String outputHeaderValue = ctx.getRequest().getHeaders().get("input-value") + ":bar";106 * ctx.getResponse().getHeaders().set("output-value", outputHeaderValue);107 * ctx.next();108 * });109 * chain.all(ctx -> ctx.render("received: " + ctx.getRequest().getPath()) );110 * }111 * }112 *113 * public static void main(String[] args) throws Exception {114 * HandlingResult result = RequestFixture.handle(new MyHandlers(), fixture ->115 * fixture.header("input-value", "foo").uri("some/path")116 * );117 *118 * assertEquals("received: some/path", result.rendered(String.class));119 * assertEquals("foo:bar", result.getHeaders().get("output-value"));120 * }121 * }122 * }</pre>123 *124 * @param chainAction the definition of a handler chain to test125 * @param requestFixtureAction the configuration of the request fixture126 * @return a result object indicating what happened127 * @throws HandlerTimeoutException if the handler takes more than {@link RequestFixture#timeout(int)} seconds to send a response or call {@code next()} on the context128 * @throws Exception any thrown by {@code chainAction} or {@code requestFixtureAction}129 * @see #handle(Handler, Action)130 */131 @SuppressWarnings("overloads")132 static HandlingResult handle(Action<? super Chain> chainAction, Action<? super RequestFixture> requestFixtureAction) throws Exception {133 RequestFixture requestFixture = requestFixture();134 requestFixtureAction.execute(requestFixture);135 return requestFixture.handleChain(chainAction);136 }137 /**138 * Create a request fixture, for unit testing of {@link Handler handlers}.139 *140 * @see #handle(Handler, Action)141 * @see #handle(Action, Action)142 * @return a request fixture143 */144 static RequestFixture requestFixture() {145 return new DefaultRequestFixture();146 }147 /**148 * Sets the request body to be the given bytes, and adds a {@code Content-Type} request header of the given value.149 * <p>150 * By default the body is empty.151 *152 * @param bytes the request body in bytes153 * @param contentType the content type of the request body154 * @return this155 */156 RequestFixture body(byte[] bytes, String contentType);157 /**158 * Sets the request body to be the given string in utf8 bytes, and adds a {@code Content-Type} request header of the given value.159 * <p>160 * By default the body is empty.161 *162 * @param text the request body as a string163 * @param contentType the content type of the request body164 * @return this165 */166 RequestFixture body(String text, String contentType);167 /**168 * A specification of a file to upload (see RFC2388)169 * <p>170 * Can be used to construct a multipart form with files171 *172 * @return a specification of a multipart file173 */174 MultipartFileSpec file();175 /**176 * Uploads a file via a multipart form (see RFC2388)177 *178 * @param field form field name179 * @param filename filename of uploaded file180 * @param data content of file181 * @return this182 */183 RequestFixture file(String field, String filename, String data);184 /**185 * A specification of a multipart form (see RFC2388)186 * <p>187 * Can be used to construct a multipart form with name value pairs and files188 * <p>189 * Note that more than one value and more than one file can be associated with a single field190 *191 * @return a specification of a multipart form192 */193 MultipartFormSpec form();194 /**195 * Sets the fields on a multipart form (see RFC2388)196 *197 * @param fields map of field name to field value198 * @return this199 */200 RequestFixture form(Map<String, String> fields);201 /**202 * A specification of the context registry.203 * <p>204 * Can be used to make objects (e.g. support services) available via context registry lookup.205 * <p>206 * By default, only a {@link ServerErrorHandler} and {@link ClientErrorHandler} are in the context registry.207 *208 * @return a specification of the context registry209 */210 RegistrySpec getRegistry();211 /**212 * Invokes the given handler with a newly created {@link Context} based on the state of this fixture.213 * <p>214 * The return value can be used to examine the effective result of the handler.215 * <p>216 * A result may be one of the following:217 * <ul>218 * <li>The sending of a response via one of the {@link Response#send} methods</li>219 * <li>Rendering to the response via the {@link Context#render(Object)}</li>220 * <li>Raising of a client error via {@link Context#clientError(int)}</li>221 * <li>Raising of a server error via {@link Context#error(Throwable)}</li>222 * <li>Raising of a server error by the throwing of an exception</li>223 * <li>Delegating to the next handler by invoking one of the {@link Context#next} methods</li>224 * </ul>225 * Note that any handlers <i>{@link Context#insert inserted}</i> by the handler under test will be invoked.226 * If the last inserted handler delegates to the next handler, the handling will terminate with a result indicating that the effective result was delegating to the next handler.227 * <p>228 * This method blocks until a result is achieved, even if the handler performs an asynchronous operation (such as performing {@link ratpack.exec.Blocking#get(ratpack.func.Factory) blocking IO}).229 * As such, a time limit on the execution is imposed which by default is 5 seconds.230 * The time limit can be changed via the {@link #timeout(int)} method.231 * If the time limit is reached, a {@link HandlerTimeoutException} is thrown.232 *233 * @param handler the handler to test234 * @return the effective result of the handling235 * @throws HandlerTimeoutException if the handler does not produce a result in the time limit defined by this fixture236 */237 HandlingResult handle(Handler handler) throws HandlerTimeoutException;238 /**239 * Similar to {@link #handle(Handler)}, but for testing a handler chain.240 *241 * @param chainAction the handler chain to test242 * @return the effective result of the handling243 * @throws HandlerTimeoutException if the handler does not produce a result in the time limit defined by this fixture244 * @throws Exception any thrown by {@code chainAction}245 */246 HandlingResult handleChain(Action<? super Chain> chainAction) throws Exception;247 /**248 * Set a request header value.249 * <p>250 * By default there are no request headers.251 *252 * @param name the header name253 * @param value the header value254 * @return this255 */256 RequestFixture header(CharSequence name, String value);257 /**258 * Configures the server config to have no base dir and given configuration.259 * <p>260 * By default the server config is equivalent to {@link ServerConfig#builder() ServerConfig.builder()}.{@link ServerConfigBuilder#build() build()}.261 *262 * @param action configuration of the server config263 * @return this264 * @throws Exception any thrown by {@code action}265 */266 RequestFixture serverConfig(Action<? super ServerConfigBuilder> action) throws Exception;267 /**268 * Set the request method (case insensitive).269 * <p>270 * The default method is {@code "GET"}.271 *272 * @param method the request method273 * @return this274 */275 RequestFixture method(String method);276 /**277 * Adds a path binding, with the given path tokens.278 * <p>279 * By default, there are no path tokens and no path binding.280 *281 * @param pathTokens the path tokens to make available to the handler(s) under test282 * @return this283 */284 RequestFixture pathBinding(Map<String, String> pathTokens);285 /**286 * Adds a path binding, with the given path tokens and parts.287 * <p>288 * By default, there are no path tokens and no path binding.289 *290 * @param boundTo the part of the request path that the binding bound to291 * @param pastBinding the part of the request path past {@code boundTo}292 * @param pathTokens the path tokens and binding to make available to the handler(s) under test293 * @return this294 */295 RequestFixture pathBinding(String boundTo, String pastBinding, Map<String, String> pathTokens);296 /**297 * Adds a path binding, with the given path tokens and parts.298 * <p>299 * By default, there are no path tokens and no path binding.300 *301 * @param boundTo the part of the request path that the binding bound to302 * @param pastBinding the part of the request path past {@code boundTo}303 * @param pathTokens the path tokens and binding to make available to the handler(s) under test304 * @param description the description of the request path binding305 * @return this306 */307 RequestFixture pathBinding(String boundTo, String pastBinding, Map<String, String> pathTokens, String description);308 /**309 * Configures the context registry.310 *311 * @param action a registry specification action312 * @return this313 * @throws Exception any thrown by {@code action}314 */315 RequestFixture registry(Action<? super RegistrySpec> action) throws Exception;316 /**317 * Set a response header value.318 * <p>319 * Can be used to simulate the setting of a response header by an upstream handler.320 * <p>321 * By default there are no request headers.322 *323 * @param name the header name324 * @param value the header value325 * @return this326 */327 RequestFixture responseHeader(CharSequence name, String value);328 /**329 * Sets the maximum time to allow the handler under test to produce a result.330 * <p>331 * As handlers may execute asynchronously, a maximum time limit must be used to guard against never ending handlers.332 *333 * @param timeoutSeconds the maximum number of seconds to allow the handler(s) under test to produce a result334 * @return this335 */336 RequestFixture timeout(int timeoutSeconds);337 /**338 * The URI of the request.339 * <p>340 * No encoding is performed on the given value.341 * It is expected to be a well formed URI path string (potentially including query and fragment strings)342 *343 * @param uri the URI of the request344 * @return this345 */346 RequestFixture uri(String uri);347 /**348 * Set the remote address from which the request is made.349 * <p>350 * Effectively the return value of {@link Request#getRemoteAddress()}.351 * @param remote the remote host and port address352 * @return this353 */354 RequestFixture remoteAddress(HostAndPort remote);355 /**356 * Set the local address to which this request is made.357 * <p>358 * Effectively the return value of {@link Request#getLocalAddress()}.359 *360 * @param local the local host and port address361 * @return this362 */363 RequestFixture localAddress(HostAndPort local);364 /**365 * Set the HTTP protocol for the request.366 *367 * @param protocol The string representation of the HTTP protocol.368 * @return this369 */370 RequestFixture protocol(String protocol);371}...

Full Screen

Full Screen

Source:TestSpecializationClone.java Github

copy

Full Screen

...42 private final String dstTypenvImage;43 private final ISpecialization spec;44 private final ISpecialization clone;45 /*46 * Fixture where the original specialization is empty.47 */48 public static class EmptySpecialization extends TestSpecializationClone {49 public EmptySpecialization() {50 super("", "", "");51 }52 }53 /*54 * Fixture where the original specialization contains substitutions that do55 * not interfere with the tests.56 */57 public static class NonEmptySpecialization extends TestSpecializationClone {58 public NonEmptySpecialization() {59 super("x=U", "U := V || x := y || $Y := $Z", "y=V");60 }61 }62 protected TestSpecializationClone(String srcTypenvImage, String specImage,63 String dstTypenvImage) {64 this.srcTypenvImage = srcTypenvImage;65 this.dstTypenvImage = dstTypenvImage;66 this.specImage = specImage;67 final ITypeEnvironment te = mTypeEnvironment(srcTypenvImage, ff);68 this.spec = mSpecialization(te, specImage);...

Full Screen

Full Screen

Source:SearchMetadataIT.java Github

copy

Full Screen

...37 this.requestSpec = requestSpec;38 this.graylogBackend = graylogBackend;39 }40 @BeforeAll41 public void importMongoFixtures() {42 this.graylogBackend.importMongoDBFixture("mongodb-stored-searches-for-metadata-endpoint.json", SearchMetadataIT.class);43 }44 @ContainerMatrixTest45 void testEmptyRequest() {46 given()47 .spec(requestSpec)48 .when()49 .post("/views/search/metadata")50 .then()51 .statusCode(400)52 .assertThat().body("message[0]", equalTo("Search body is mandatory"));53 }54 @ContainerMatrixTest55 void testMinimalRequestWithoutParameter() {56 final ValidatableResponse response = given()...

Full Screen

Full Screen

Fixture

Using AI Code Generation

copy

Full Screen

1import given.an.empty.spec.Fixture;2import org.junit.Test;3public class 1 {4 public void test() {5 Fixture f = new Fixture();6 f.doSomething();7 }8}9import given.an.empty.spec.Fixture;10import org.junit.Test;11public class 2 {12 public void test() {13 Fixture f = new Fixture();14 f.doSomething();15 }16}

Full Screen

Full Screen

Fixture

Using AI Code Generation

copy

Full Screen

1package given.an.empty.spec;2import org.jbehave.core.annotations.*;3import org.jbehave.core.steps.Fixture;4public class FixtureSteps extends Fixture {5 @Given("a step in FixtureSteps")6 public void givenAStepInFixtureSteps() {7 }8}9package given.an.empty.spec;10import org.jbehave.core.annotations.*;11import org.jbehave.core.steps.Fixture;12public class FixtureSteps2 extends Fixture {13 @Given("a step in FixtureSteps2")14 public void givenAStepInFixtureSteps2() {15 }16}17package given.an.empty.spec;18import org.jbehave.core.annotations.*;19import org.jbehave.core.steps.Fixture;20public class FixtureSteps3 extends Fixture {21 @Given("a step in FixtureSteps3")22 public void givenAStepInFixtureSteps3() {23 }24}25package given.an.empty.spec;26import org.jbehave.core.annotations.*;27import org.jbehave.core.steps.Fixture;28public class FixtureSteps4 extends Fixture {29 @Given("a step in FixtureSteps4")30 public void givenAStepInFixtureSteps4() {31 }32}33package given.an.empty.spec;34import org.jbehave.core.annotations.*;35import org.jbehave.core.steps.Fixture;36public class FixtureSteps5 extends Fixture {37 @Given("a step in FixtureSteps5")38 public void givenAStepInFixtureSteps5() {39 }40}41package given.an.empty.spec;42import org.jbehave.core.annotations.*;43import org.jbehave.core.steps.Fixture;44public class FixtureSteps6 extends Fixture {45 @Given("a step in FixtureSteps6")46 public void givenAStepInFixtureSteps6() {47 }48}49package given.an.empty.spec;50import org.jbehave.core.annotations.*;51import org.jbehave.core.steps.Fixture;52public class FixtureSteps7 extends Fixture {

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Spectrum automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in Fixture

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful