fluvio-spu 0.3.0

Fluvio Stream Processing Unit
Documentation
mod generator;
mod spu_client;
mod mock_sc;
mod test_runner;

pub(crate) use generator::TestGenerator;
pub(crate) use test_runner::SpuTestRunner;
pub(crate) use spu_client::SpuServer;

use std::sync::Arc;

use futures::Future;

use fluvio_socket::FlvSocketError;
use fluvio_controlplane_metadata::partition::ReplicaKey;

/// Customize System Test
pub trait SpuTest: Sized {
    type ResponseFuture: Send + Future<Output = Result<(), FlvSocketError>>;

    /// environment configuration
    fn env_configuration(&self) -> TestGenerator;

    /// number of followers
    fn followers(&self) -> usize;

    /// replicas.  by default, it's empty
    fn replicas(&self) -> Vec<ReplicaKey> {
        vec![]
    }

    /// main entry point
    fn main_test(&self, runner: Arc<SpuTestRunner<Self>>) -> Self::ResponseFuture;
}