private CandleMonitor ResetSubject(CandleMonitorFeeds feedData) { iCountCandleSourceEvents = new CandleSourceEventSummary(); mockCoinbaseProClient = new Mock <ICoinbaseProClient>(); fakeWorkflow = StartupWorkflow.ForCandleMonitorOnly(); var mockCandleDataSource = new Mock <ICandleDataSource>(); mockCandleDataSource.Setup(o => o.Load(DateTime.UtcNow)).ReturnsAsync(Mock.Of <TimeSeries>()); mockCandleDataSource.SetupProperty(o => o.LastUpdatedUtc, DateTime.UtcNow.AddDays(-100)); var mockCandleProvider = new Mock <ICandleProvider>(); mockCandleProvider.Setup(o => o.Load(Mock.Of <MarketFeedSettings>()).LastUpdatedUtc).Returns(DateTime.UtcNow.AddDays(-100)); mockCandleProvider.SetupGet(o => o.DataStores[It.IsAny <MarketFeedSettings>()]).Returns(mockCandleDataSource.Object); var mockCandleMonitorFeedProvider = new Mock <ICandleMonitorFeedProvider>(); mockCandleMonitorFeedProvider.Setup(o => o.GetFeeds()).Returns(new List <CandleMonitorFeeds> { feedData }); var mockCandleProducer = new Mock <ICandleProducer>(); setupMockCandleProducer = mockCandleProducer.Setup(o => o.Send(It.IsAny <CandlesReceivedEventArgs>())); var fakeAppSettings = Options.Create(new AppSetting()); var fakeLogger = NUnitOutputLogger.Create <CandleMonitor>(); var subject = new CandleMonitor( mockCoinbaseProClient.Object, fakeWorkflow, mockCandleProvider.Object, mockCandleMonitorFeedProvider.Object, mockCandleProducer.Object, fakeAppSettings, fakeLogger); return(subject); }
private StartupWorkflow( bool triggerSocketMonitor, bool triggerOrderMonitor, bool triggerAccountMonitor, bool triggerCandleMonitor, bool triggerStrategyMonitor, bool triggerOverlayMonitor) : this() { // See this link for very detailed explanation of how TaskCompletionSource can block // https://blogs.msdn.microsoft.com/seteplia/2018/10/01/the-danger-of-taskcompletionsourcet-class/ if (triggerSocketMonitor) { SocketMonitor.SetResult(true); } if (triggerOrderMonitor) { OrderMonitor.SetResult(true); } if (triggerAccountMonitor) { AccountMonitor.SetResult(true); } if (triggerCandleMonitor) { CandleMonitor.SetResult(true); } if (triggerStrategyMonitor) { StrategyMonitor.SetResult(true); } if (triggerOverlayMonitor) { OverlayMonitor.SetResult(true); } }