### Question:
DefaultBackingServicesProvisionService implements BackingServicesProvisionService { @Override public Flux<String> createServiceInstance(List<BackingService> backingServices) { return Flux.fromIterable(backingServices) .parallel() .runOn(Schedulers.parallel()) .flatMap(deployerClient::createServiceInstance) .sequential() .doOnRequest(l -> { LOG.info("Creating backing services"); LOG.debug(BACKINGSERVICES_LOG_TEMPLATE, backingServices); }) .doOnComplete(() -> { LOG.info("Finish creating backing services"); LOG.debug(BACKINGSERVICES_LOG_TEMPLATE, backingServices); }) .doOnError(e -> LOG.error(String.format("Error creating backing services. error=%s", e.getMessage()), e)); } DefaultBackingServicesProvisionService(DeployerClient deployerClient); @Override Flux<String> createServiceInstance(List<BackingService> backingServices); @Override Flux<String> updateServiceInstance(List<BackingService> backingServices); @Override Flux<String> deleteServiceInstance(List<BackingService> backingServices);  }### Answer:
@Test @SuppressWarnings("UnassignedFluxMonoInstance") void createServiceInstance() { doReturn(Mono.just("si1")) .when(deployerClient).createServiceInstance(backingServices.get(0)); doReturn(Mono.just("si2")) .when(deployerClient).createServiceInstance(backingServices.get(1)); List<String> expectedValues = new ArrayList<>(); expectedValues.add("si1"); expectedValues.add("si2"); StepVerifier.create(backingServicesProvisionService.createServiceInstance(backingServices)) .expectNextMatches(expectedValues::remove) .expectNextMatches(expectedValues::remove) .verifyComplete(); }