예제 #1
0
        public void CanNotDeleteNonAttachedOrder()
        {
            // Arrange
            var vm = GetVm();
            var dispatcherHelper        = Substitute.For <IDispatcherHelper>();
            var queueProcessor          = Substitute.For <IQueueProcessor>();
            var findSymbolService       = Substitute.For <IFindSymbolService>();
            var orderCalculationService = Substitute.For <IOrderCalculationService>();
            var orderManager            = Substitute.For <IOrderManager>();
            var factory = new NewOrderViewModelFactory(dispatcherHelper, queueProcessor, findSymbolService, orderCalculationService, orderManager);
            var order   = factory.Create();

            // Assert
            Assert.False(vm.DeleteCommand.CanExecute(order));
        }
예제 #2
0
        private NewOrderViewModel GetOrder()
        {
            var dispatcherHelper = Substitute.For <IDispatcherHelper>();

            dispatcherHelper
            .When(x => x.InvokeOnUiThread(Arg.Any <Action>()))
            .Do(x =>
            {
                var action = x.Arg <Action>();
                action.Invoke();
            });

            var queueProcessor          = Substitute.For <IQueueProcessor>();
            var findSymbolService       = Substitute.For <IFindSymbolService>();
            var orderCalculationService = Substitute.For <IOrderCalculationService>();
            var orderManager            = Substitute.For <IOrderManager>();

            var factory = new NewOrderViewModelFactory(dispatcherHelper, queueProcessor, findSymbolService, orderCalculationService, orderManager);

            return(factory.Create());
        }
예제 #3
0
        private static OrdersListViewModel GetVm(
            ITradeRepository tradeRepository                 = null,
            IMarketDataManager marketDataManager             = null,
            IOrderCalculationService orderCalculationService = null,
            IOrderManager orderManager = null)
        {
            var dispatcherHelper = Substitute.For <IDispatcherHelper>();

            dispatcherHelper
            .When(x => x.InvokeOnUiThread(Arg.Any <Action>()))
            .Do(x => x.Arg <Action>().Invoke());

            var queueProcessor = Substitute.For <IQueueProcessor>();

            if (tradeRepository == null)
            {
                tradeRepository = Substitute.For <ITradeRepository>();
            }

            if (marketDataManager == null)
            {
                marketDataManager = Substitute.For <IMarketDataManager>();
            }

            var findSymbolService = Substitute.For <IFindSymbolService>();

            if (orderCalculationService == null)
            {
                orderCalculationService = Substitute.For <IOrderCalculationService>();
            }

            if (orderManager == null)
            {
                orderManager = Substitute.For <IOrderManager>();
            }

            var factory = new NewOrderViewModelFactory(dispatcherHelper, queueProcessor, findSymbolService, orderCalculationService, orderManager);

            return(new OrdersListViewModel(dispatcherHelper, Substitute.For <IQueueProcessor>(), factory, tradeRepository, marketDataManager));
        }
        public MainViewModel Build()
        {
            ConnectionService = _connectionService ?? Substitute.For <IConnectionService>();
            var orderManager            = Substitute.For <IOrderManager>();
            var orderCalculationService = _orderCalculationService ?? Substitute.For <IOrderCalculationService>();

            var marketDataManager = Substitute.For <IMarketDataManager>();
            var positionsManager  = Substitute.For <IPositionManager>();
            var contractManager   = Substitute.For <IContractManager>();

            var queueProcessor = Substitute.For <IQueueProcessor>();

            queueProcessor
            .When(x => x.Enqueue(Arg.Any <Action>()))
            .Do(x => x.Arg <Action>().Invoke());

            var dispatcherHelper = Substitute.For <IDispatcherHelper>();

            dispatcherHelper
            .When(x => x.InvokeOnUiThread(Arg.Any <Action>()))
            .Do(x => x.Arg <Action>().Invoke());

            var accountManager = _accountManager ?? Substitute.For <IAccountManager>();

            var tradeRecordingService = _tradeRecordingService ?? Substitute.For <ITradeRecordingService>();

            var positionsViewModel = new PositionsViewModel(dispatcherHelper, marketDataManager, accountManager, positionsManager, contractManager, queueProcessor, tradeRecordingService);

            SettingsRepository = _settingsRepository;
            if (SettingsRepository == null)
            {
                SettingsRepository = Substitute.For <ISettingsRepository>();
                SettingsRepository.GetAllAsync().Returns(new List <Setting>
                {
                    new Setting
                    {
                        Key   = SettingsViewModel.SettingsKeys.RiskPercentOfAccountSize,
                        Value = "1"
                    },
                    new Setting
                    {
                        Key   = SettingsViewModel.SettingsKeys.RiskMultiplier,
                        Value = "1"
                    }
                });
            }

            SettingsViewModel = new SettingsViewModel(SettingsRepository);

            var findSymbolService      = Substitute.For <IFindSymbolService>();
            var factory                = new NewOrderViewModelFactory(dispatcherHelper, queueProcessor, findSymbolService, orderCalculationService, orderManager);
            var tradeRepository        = Substitute.For <ITradeRepository>();
            var riskCalculationService = _riskCalculationService ?? Substitute.For <IRiskCalculationService>();

            MainViewModel.IsUnitTesting = true;
            return(new MainViewModel(
                       dispatcherHelper,
                       ConnectionService,
                       orderCalculationService,
                       positionsViewModel,
                       SettingsViewModel,
                       new OrdersListViewModel(dispatcherHelper, queueProcessor, factory, tradeRepository, marketDataManager),
                       riskCalculationService,
                       tradeRecordingService));
        }