public StateSynchronizer(
     IStreamStatesProvider statesProvider,
     IStreamJobFactory jobFactory,
     IJobLauncher jobLauncher)
 {
     this.statesProvider = statesProvider;
     this.jobFactory     = jobFactory;
     this.jobLauncher    = jobLauncher;
 }
        public void TestSetup()
        {
            state1 = Substitute.For <IStreamState>();
            state2 = Substitute.For <IStreamState>();
            state3 = Substitute.For <IStreamState>();

            state1.Name.Returns("state1");
            state2.Name.Returns("state2");
            state3.Name.Returns("state3");

            statesProvider = Substitute.For <IStreamStatesProvider>();
            statesProvider.GetStates().Returns(new[] { state1, state2, state3 });

            jobFactory  = Substitute.For <IStreamJobFactory>();
            jobLauncher = Substitute.For <IJobLauncher>();

            state = new SchedulerState(Task.CompletedTask, CancellationToken.None);

            synchronizer = new StateSynchronizer(statesProvider, jobFactory, jobLauncher);
        }