public void LoadTradeData_SupportedFile_NoException() { // arrange // note: here we are not using anything from [TestInitialize] const string csvFilePath = "X:\\folder1\\folder2\\tradedata.csv"; var csvFile = new FileInfo(csvFilePath); var csvLoader = A.Fake <ITradeDataLoader>(); // setup first mocked loader csvLoader.CallsTo(l => l.CouldLoad(csvFile)).Returns(true); // supports .csv csvLoader.CallsTo(l => l.LoadTradeData(csvFile)) .WithAnyArguments() .Returns(new TradeDataPackage()); // returns empty package from file var notCsvLoader = A.Fake <ITradeDataLoader>(); // setup second mocked loader notCsvLoader.CallsTo(l => l.CouldLoad(csvFile)).Returns(false); // does not support .csv // create composite to test: var loaders = new List <ITradeDataLoader> { csvLoader, notCsvLoader }; var loader = new CompositeTradeDataLoader(loaders); // inject // act loader.LoadTradeData(csvFile); // try load csv // assert csvLoader.CallsTo(l => l.LoadTradeData(csvFile)).MustHaveHappened(); notCsvLoader.CallsTo(l => l.LoadTradeData(csvFile)).MustNotHaveHappened(); }
protected override void OnStartup(StartupEventArgs e) { try { base.OnStartup(e); AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; TradeDataMonitorAppSettings.Load(); // load settings from app.config IKernel kernel = new StandardKernel(new TradeDataMonitorAppModule()); // ninject bindings // bundle all loaders within one CompositeTradeDataLoader to transfer into TradeDataMonitor var compositeLoader = new CompositeTradeDataLoader(TradeDataMonitorAppSettings.TradeDataLoaders); // create TradeDataMonitor class - the model var model = kernel.Get <ITradeDataMonitor>( new ConstructorArgument("timerPeriodSeconds", TradeDataMonitorAppSettings.MonitoringPeriodSeconds), new ConstructorArgument("monitoringDirectory", TradeDataMonitorAppSettings.MonitoringDirectoryPath), new ConstructorArgument("tradeDataLoader", compositeLoader)); // initialize ViewModel with TradeDataMonitor var viewModel = kernel.Get <TradeDataMonitorViewModel>(new ConstructorArgument("tradeDataMonitor", model)); var mw = new MainWindow(viewModel); mw.Show(); } catch (Exception exc) { MessageBox.Show(exc.ToString(), "Error during application execution", MessageBoxButton.OK, MessageBoxImage.Error); NLog.LogManager.GetCurrentClassLogger().Error(exc.ToString); } }
public void InitializeTest() { var loader1 = new CsvFileTradeDataLoader(); var loader2 = new TxtFileTradeDataLoader(); var loaders = new List <ITradeDataLoader> { loader1, loader2 }; _loader = new CompositeTradeDataLoader(loaders); }