Example #1
0
        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();
        }
Example #2
0
        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);
            }
        }
Example #3
0
        public void InitializeTest()
        {
            var loader1 = new CsvFileTradeDataLoader();
            var loader2 = new TxtFileTradeDataLoader();
            var loaders = new List <ITradeDataLoader> {
                loader1, loader2
            };

            _loader = new CompositeTradeDataLoader(loaders);
        }