diff --git a/logos/examples/tests/external_sources_local.rs b/logos/examples/tests/external_sources_local.rs index af16b9d..fbf36f2 100644 --- a/logos/examples/tests/external_sources_local.rs +++ b/logos/examples/tests/external_sources_local.rs @@ -145,8 +145,7 @@ async fn scenario_managed_plus_external_sources_are_orchestrated() -> Result<()> let mut scenario = ScenarioBuilder::new(Box::new(deployment_builder)) .with_run_duration(Duration::from_secs(5)) - .with_external_node(seed_cluster.external_sources()[0].clone()) - .with_external_node(seed_cluster.external_sources()[1].clone()) + .with_external_nodes(seed_cluster.external_sources().to_vec()) .build()?; let deployer = ProcessDeployer::::default(); diff --git a/testing-framework/core/src/scenario/definition.rs b/testing-framework/core/src/scenario/definition.rs index 9fd1d1c..19fb3c7 100644 --- a/testing-framework/core/src/scenario/definition.rs +++ b/testing-framework/core/src/scenario/definition.rs @@ -276,11 +276,27 @@ macro_rules! impl_common_builder_methods { self.map_core_builder(|builder| builder.with_external_node(node)) } + #[must_use] + pub fn with_external_nodes( + self, + nodes: impl IntoIterator, + ) -> Self { + self.map_core_builder(|builder| builder.with_external_nodes(nodes)) + } + #[must_use] pub fn with_external_only_sources(self) -> Self { self.map_core_builder(|builder| builder.with_external_only_sources()) } + #[must_use] + pub fn with_external_only_nodes( + self, + nodes: impl IntoIterator, + ) -> Self { + self.map_core_builder(|builder| builder.with_external_only_nodes(nodes)) + } + #[must_use] pub fn run_duration(&self) -> Duration { self.core_builder_ref().run_duration() @@ -597,12 +613,32 @@ impl Builder { self } + #[must_use] + pub fn with_external_nodes( + mut self, + nodes: impl IntoIterator, + ) -> Self { + for node in nodes { + self.sources = self.sources.with_external_node(node); + } + + self + } + #[must_use] pub fn with_external_only_sources(mut self) -> Self { self.sources = self.sources.into_external_only(); self } + #[must_use] + pub fn with_external_only_nodes( + self, + nodes: impl IntoIterator, + ) -> Self { + self.with_external_only_sources().with_external_nodes(nodes) + } + fn add_workload(&mut self, workload: Box>) { self.expectations.extend(workload.expectations()); self.workloads.push(workload);