io.vlingo.xoom.actors.testkit.TestContext Maven / Gradle / Ivy
// Copyright © 2012-2021 VLINGO LABS. All rights reserved.
//
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v. 2.0. If a copy of the MPL
// was not distributed with this file, You can obtain
// one at https://mozilla.org/MPL/2.0/.
package io.vlingo.xoom.actors.testkit;
import java.util.concurrent.atomic.AtomicReference;
/**
* A context useful for testing, consisting of an atomic reference value
* and a safe access to state modification with expected number of outcomes.
*/
public class TestContext {
/**
* Track number of expected happenings. Use resetHappeningsTo(n)
* to change expectations inside a single test.
*/
private AccessSafely access;
/**
* A reference to any object that may be of use to the test.
* Use reference() to cast the inner object to a specific type.
*/
private final AtomicReference