All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.rxjava.ext.unit.TestSuite Maven / Gradle / Ivy

There is a newer version: 5.0.0.CR1
Show newest version
/*
 * Copyright 2014 Red Hat, Inc.
 *
 * Red Hat licenses this file to you under the Apache License, version 2.0
 * (the "License"); you may not use this file except in compliance with the
 * License.  You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package io.vertx.rxjava.ext.unit;

import rx.Observable;
import rx.Single;
import io.vertx.rx.java.RxHelper;
import io.vertx.rx.java.WriteStreamSubscriber;
import io.vertx.rx.java.SingleOnSubscribeAdapter;
import java.util.Map;
import java.util.Set;
import java.util.List;
import java.util.Iterator;
import java.util.function.Function;
import java.util.stream.Collectors;
import io.vertx.core.Handler;
import io.vertx.core.AsyncResult;
import io.vertx.core.json.JsonObject;
import io.vertx.core.json.JsonArray;
import io.vertx.lang.rx.RxGen;
import io.vertx.lang.rx.TypeArg;
import io.vertx.lang.rx.MappingIterator;

/**
 * A named suite of test cases that are executed altogether. The suite suite is created with
 * the {@link io.vertx.rxjava.ext.unit.TestSuite#create} and the returned suite contains initially no tests.

* * The suite can declare a callback before the suite with {@link io.vertx.rxjava.ext.unit.TestSuite#before} or after * the suite with {@link io.vertx.rxjava.ext.unit.TestSuite#after}.

* * The suite can declare a callback before each test with {@link io.vertx.rxjava.ext.unit.TestSuite#beforeEach} or after * each test with {@link io.vertx.rxjava.ext.unit.TestSuite#afterEach}.

* * Each test case of the suite is declared by calling the {@link io.vertx.rxjava.ext.unit.TestSuite#test} method. * *

* NOTE: This class has been automatically generated from the {@link io.vertx.ext.unit.TestSuite original} non RX-ified interface using Vert.x codegen. */ @RxGen(io.vertx.ext.unit.TestSuite.class) public class TestSuite { @Override public String toString() { return delegate.toString(); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TestSuite that = (TestSuite) o; return delegate.equals(that.delegate); } @Override public int hashCode() { return delegate.hashCode(); } public static final TypeArg __TYPE_ARG = new TypeArg<>( obj -> new TestSuite((io.vertx.ext.unit.TestSuite) obj), TestSuite::getDelegate ); private final io.vertx.ext.unit.TestSuite delegate; public TestSuite(io.vertx.ext.unit.TestSuite delegate) { this.delegate = delegate; } public TestSuite(Object delegate) { this.delegate = (io.vertx.ext.unit.TestSuite)delegate; } public io.vertx.ext.unit.TestSuite getDelegate() { return delegate; } /** * Create and return a new test suite. * @param name the test suite name * @return the created test suite */ public static io.vertx.rxjava.ext.unit.TestSuite create(String name) { io.vertx.rxjava.ext.unit.TestSuite ret = io.vertx.rxjava.ext.unit.TestSuite.newInstance((io.vertx.ext.unit.TestSuite)io.vertx.ext.unit.TestSuite.create(name)); return ret; } /** * Set a callback executed before the tests. * @param callback the callback * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.unit.TestSuite before(Handler callback) { delegate.before(new Handler() { public void handle(io.vertx.ext.unit.TestContext event) { callback.handle(io.vertx.rxjava.ext.unit.TestContext.newInstance((io.vertx.ext.unit.TestContext)event)); } }); return this; } /** * Set a callback executed before each test and after the suite before callback. * @param callback the callback * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.unit.TestSuite beforeEach(Handler callback) { delegate.beforeEach(new Handler() { public void handle(io.vertx.ext.unit.TestContext event) { callback.handle(io.vertx.rxjava.ext.unit.TestContext.newInstance((io.vertx.ext.unit.TestContext)event)); } }); return this; } /** * Set a callback executed after the tests. * @param callback the callback * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.unit.TestSuite after(Handler callback) { delegate.after(new Handler() { public void handle(io.vertx.ext.unit.TestContext event) { callback.handle(io.vertx.rxjava.ext.unit.TestContext.newInstance((io.vertx.ext.unit.TestContext)event)); } }); return this; } /** * Set a callback executed after each test and before the suite after callback. * @param callback the callback * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.unit.TestSuite afterEach(Handler callback) { delegate.afterEach(new Handler() { public void handle(io.vertx.ext.unit.TestContext event) { callback.handle(io.vertx.rxjava.ext.unit.TestContext.newInstance((io.vertx.ext.unit.TestContext)event)); } }); return this; } /** * Add a new test case to the suite. * @param name the test case name * @param testCase the test case * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.unit.TestSuite test(String name, Handler testCase) { delegate.test(name, new Handler() { public void handle(io.vertx.ext.unit.TestContext event) { testCase.handle(io.vertx.rxjava.ext.unit.TestContext.newInstance((io.vertx.ext.unit.TestContext)event)); } }); return this; } /** * Add a new test case to the suite. * @param name the test case name * @param repeat the number of times the test should be repeated * @param testCase the test case * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.ext.unit.TestSuite test(String name, int repeat, Handler testCase) { delegate.test(name, repeat, new Handler() { public void handle(io.vertx.ext.unit.TestContext event) { testCase.handle(io.vertx.rxjava.ext.unit.TestContext.newInstance((io.vertx.ext.unit.TestContext)event)); } }); return this; } /** * Run the testsuite with the default options.

* * When the test suite is executed in a Vertx context (i.e `Vertx.currentContext()` returns a context) this * context's event loop is used for running the test suite. Otherwise it is executed in the current thread.

* * The returned {@link io.vertx.rxjava.ext.unit.Completion} object can be used to get a completion callback. * @return the related test completion */ public io.vertx.rxjava.ext.unit.TestCompletion run() { io.vertx.rxjava.ext.unit.TestCompletion ret = io.vertx.rxjava.ext.unit.TestCompletion.newInstance((io.vertx.ext.unit.TestCompletion)delegate.run()); return ret; } /** * Run the testsuite with the specified options.

* * When the test suite is executed in a Vertx context (i.e `Vertx.currentContext()` returns a context) this * context's event loop is used for running the test suite unless the {@link io.vertx.ext.unit.TestOptions} * is set to false. In this case it is executed by the current thread.

* * Otherwise, the test suite will be executed in the current thread when {@link io.vertx.ext.unit.TestOptions} is * set to false or null. If the value is true, this methods throws an IllegalStateException.

* * The returned {@link io.vertx.rxjava.ext.unit.Completion} object can be used to get a completion callback. * @param options the test options * @return the related test completion */ public io.vertx.rxjava.ext.unit.TestCompletion run(io.vertx.ext.unit.TestOptions options) { io.vertx.rxjava.ext.unit.TestCompletion ret = io.vertx.rxjava.ext.unit.TestCompletion.newInstance((io.vertx.ext.unit.TestCompletion)delegate.run(options)); return ret; } /** * Run the testsuite with the default options and the specified vertx instance.

* * The test suite will be executed on the event loop provided by the vertx argument. The returned * {@link io.vertx.rxjava.ext.unit.Completion} object can be used to get a completion callback.

* @param vertx the vertx instance * @return the related test completion */ public io.vertx.rxjava.ext.unit.TestCompletion run(io.vertx.rxjava.core.Vertx vertx) { io.vertx.rxjava.ext.unit.TestCompletion ret = io.vertx.rxjava.ext.unit.TestCompletion.newInstance((io.vertx.ext.unit.TestCompletion)delegate.run(vertx.getDelegate())); return ret; } /** * Run the testsuite with the specified options and the specified vertx instance.

* * The test suite will be executed on the event loop provided by the vertx argument when * {@link io.vertx.ext.unit.TestOptions} is not set to false. The returned * {@link io.vertx.rxjava.ext.unit.Completion} object can be used to get a completion callback. * @param vertx the vertx instance * @param options the test options * @return the related test completion */ public io.vertx.rxjava.ext.unit.TestCompletion run(io.vertx.rxjava.core.Vertx vertx, io.vertx.ext.unit.TestOptions options) { io.vertx.rxjava.ext.unit.TestCompletion ret = io.vertx.rxjava.ext.unit.TestCompletion.newInstance((io.vertx.ext.unit.TestCompletion)delegate.run(vertx.getDelegate(), options)); return ret; } public static TestSuite newInstance(io.vertx.ext.unit.TestSuite arg) { return arg != null ? new TestSuite(arg) : null; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy