Пример #1
0
        public void SubmitCallsServiceWithCorrectOrder()
        {
            var ordersService = new MockOrdersService();
            var presenter     = new TestableOrderDetailsPresenter(new MockOrderDetailsView(),
                                                                  new MockAccountPositionService(), ordersService);

            presenter.Shares          = 2;
            presenter.TickerSymbol    = "AAAA";
            presenter.TransactionType = TransactionType.Buy;
            presenter.TimeInForce     = TimeInForce.EndOfDay;
            presenter.OrderType       = OrderType.Limit;
            presenter.StopLimitPrice  = 15;

            Assert.IsNull(ordersService.SubmitArgumentOrder);
            presenter.SubmitCommand.Execute(null);

            var submittedOrder = ordersService.SubmitArgumentOrder;

            Assert.IsNotNull(submittedOrder);
            Assert.AreEqual("AAAA", submittedOrder.TickerSymbol);
            Assert.AreEqual(TransactionType.Buy, submittedOrder.TransactionType);
            Assert.AreEqual(TimeInForce.EndOfDay, submittedOrder.TimeInForce);
            Assert.AreEqual(OrderType.Limit, submittedOrder.OrderType);
            Assert.AreEqual(15, submittedOrder.StopLimitPrice);
        }
        public void SubmitThrowsIfCanExecuteIsFalse()
        {
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(),
                                                              new MockAccountPositionService());
            presenter.Shares = 0;
            Assert.IsFalse(presenter.SubmitCommand.CanExecute(null));

            presenter.SubmitCommand.Execute(null);
        }
Пример #3
0
        public void PresenterInitializesCommandsBasedOnActiveView()
        {
            var view = new MockOrderDetailsView();

            view.IsActive = true;

            var presenter = new TestableOrderDetailsPresenter(view, null);

            Assert.IsTrue(presenter.CancelCommand.IsActive);
        }
Пример #4
0
        public void SubmitThrowsIfCanExecuteIsFalse()
        {
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(),
                                                              new MockAccountPositionService());

            presenter.Shares = 0;
            Assert.IsFalse(presenter.SubmitCommand.CanExecute(null));

            presenter.SubmitCommand.Execute(null);
        }
        public void CannotSubmitWhenSharesIsNotPositive()
        {
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), null);

            presenter.Shares = 2;
            presenter.StopLimitPrice = 2;
            Assert.IsTrue(presenter.SubmitCommand.CanExecute(null));

            presenter.Shares = 0;
            Assert.IsFalse(presenter.SubmitCommand.CanExecute(null));
        }
Пример #6
0
        public void CannotSubmitWhenSharesIsNotPositive()
        {
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), null);

            presenter.Shares         = 2;
            presenter.StopLimitPrice = 2;
            Assert.IsTrue(presenter.SubmitCommand.CanExecute(null));

            presenter.Shares = 0;
            Assert.IsFalse(presenter.SubmitCommand.CanExecute(null));
        }
        public void CanExecuteChangedIsRaisedForSubmitCommandWhenModelChanges()
        {
            var view = new MockOrderDetailsView();
            bool canExecuteChanged = false;

            var presenter = new TestableOrderDetailsPresenter(view, null);

            presenter.SubmitCommand.CanExecuteChanged += delegate { canExecuteChanged = true; };

            presenter.Shares = 2;

            Assert.IsTrue(canExecuteChanged);
        }
Пример #8
0
        public void CanExecuteChangedIsRaisedForSubmitCommandWhenModelChanges()
        {
            var  view = new MockOrderDetailsView();
            bool canExecuteChanged = false;

            var presenter = new TestableOrderDetailsPresenter(view, null);

            presenter.SubmitCommand.CanExecuteChanged += delegate { canExecuteChanged = true; };

            presenter.Shares = 2;

            Assert.IsTrue(canExecuteChanged);
        }
Пример #9
0
        public void ShouldSetStopLimitPriceInModel()
        {
            var accountPositionService = new MockAccountPositionService();

            accountPositionService.AddPosition(new AccountPosition("TESTFUND", 10m, 15));
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), accountPositionService);

            presenter.TickerSymbol    = "TESTFUND";
            presenter.TransactionType = TransactionType.Sell;
            presenter.Shares          = 5;
            presenter.StopLimitPrice  = 0;

            Assert.AreEqual <string>("The stop limit price must be greater than 0", presenter["StopLimitPrice"]);
        }
Пример #10
0
        public void CancelRaisesCloseViewEvent()
        {
            bool closeViewRaised = false;

            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), null);

            presenter.CloseViewRequested += delegate
            {
                closeViewRaised = true;
            };

            presenter.CancelCommand.Execute(null);

            Assert.IsTrue(closeViewRaised);
        }
Пример #11
0
        public void CannotSubmitIfStopLimitZero()
        {
            var accountPositionService = new MockAccountPositionService();

            accountPositionService.AddPosition(new AccountPosition("TESTFUND", 10m, 15));
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), accountPositionService);

            presenter.TickerSymbol    = "TESTFUND";
            presenter.TransactionType = TransactionType.Sell;
            presenter.Shares          = 5;
            presenter.StopLimitPrice  = 1;
            Assert.IsTrue(presenter.SubmitCommand.CanExecute(null));

            presenter.StopLimitPrice = 0;
            Assert.IsFalse(presenter.SubmitCommand.CanExecute(null));
        }
Пример #12
0
        public void PresenterUpdatesCommandsBasedOnActiveChangedOfView()
        {
            var view      = new MockOrderDetailsView();
            var presenter = new TestableOrderDetailsPresenter(view, null);

            view.IsActive = true;
            view.RaiseIsActiveChanged();

            Assert.IsTrue(presenter.CancelCommand.IsActive);

            view.IsActive = false;
            view.RaiseIsActiveChanged();

            Assert.IsFalse(presenter.CancelCommand.IsActive);

            view.IsActive = true;
            view.RaiseIsActiveChanged();

            Assert.IsTrue(presenter.CancelCommand.IsActive);
        }
Пример #13
0
        public void SubmitRaisesCloseViewEvent()
        {
            bool closeViewRaised = false;

            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(),
                                                              new MockAccountPositionService());

            presenter.CloseViewRequested += delegate
            {
                closeViewRaised = true;
            };

            presenter.TransactionType = TransactionType.Buy;
            presenter.Shares          = 1;
            presenter.StopLimitPrice  = 1;
            Assert.IsTrue(presenter.SubmitCommand.CanExecute(null));
            presenter.SubmitCommand.Execute(null);

            Assert.IsTrue(closeViewRaised);
        }
        public void PresenterInitializesCommandsBasedOnActiveView()
        {
            var view = new MockOrderDetailsView();
            view.IsActive = true;

            var presenter = new TestableOrderDetailsPresenter(view, null);

            Assert.IsTrue(presenter.CancelCommand.IsActive);
        }
        public void SubmitRaisesCloseViewEvent()
        {
            bool closeViewRaised = false;

            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(),
                                                              new MockAccountPositionService());
            presenter.CloseViewRequested += delegate
            {
                closeViewRaised = true;
            };

            presenter.TransactionType = TransactionType.Buy;
            presenter.Shares = 1;
            presenter.StopLimitPrice = 1;
            Assert.IsTrue(presenter.SubmitCommand.CanExecute(null));
            presenter.SubmitCommand.Execute(null);

            Assert.IsTrue(closeViewRaised);
        }
        public void CannotSubmitIfStopLimitZero()
        {
            var accountPositionService = new MockAccountPositionService();
            accountPositionService.AddPosition(new AccountPosition("TESTFUND", 10m, 15));
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), accountPositionService);

            presenter.TickerSymbol = "TESTFUND";
            presenter.TransactionType = TransactionType.Sell;
            presenter.Shares = 5;
            presenter.StopLimitPrice = 1;
            Assert.IsTrue(presenter.SubmitCommand.CanExecute(null));

            presenter.StopLimitPrice = 0;
            Assert.IsFalse(presenter.SubmitCommand.CanExecute(null));
        }
        public void SubmitCallsServiceWithCorrectOrder()
        {
            var ordersService = new MockOrdersService();
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(),
                                                              new MockAccountPositionService(), ordersService);
            presenter.Shares = 2;
            presenter.TickerSymbol = "AAAA";
            presenter.TransactionType = TransactionType.Buy;
            presenter.TimeInForce = TimeInForce.EndOfDay;
            presenter.OrderType = OrderType.Limit;
            presenter.StopLimitPrice = 15;

            Assert.IsNull(ordersService.SubmitArgumentOrder);
            presenter.SubmitCommand.Execute(null);

            var submittedOrder = ordersService.SubmitArgumentOrder;
            Assert.IsNotNull(submittedOrder);
            Assert.AreEqual("AAAA", submittedOrder.TickerSymbol);
            Assert.AreEqual(TransactionType.Buy, submittedOrder.TransactionType);
            Assert.AreEqual(TimeInForce.EndOfDay, submittedOrder.TimeInForce);
            Assert.AreEqual(OrderType.Limit, submittedOrder.OrderType);
            Assert.AreEqual(15, submittedOrder.StopLimitPrice);
        }
Пример #18
0
        public void PresenterCreatesPublicSubmitCommand()
        {
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), null);

            Assert.IsNotNull(presenter.SubmitCommand);
        }
        public void ShouldSetStopLimitPriceInModel()
        {
            var accountPositionService = new MockAccountPositionService();
            accountPositionService.AddPosition(new AccountPosition("TESTFUND", 10m, 15));
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), accountPositionService);

            presenter.TickerSymbol = "TESTFUND";
            presenter.TransactionType = TransactionType.Sell;
            presenter.Shares = 5;
            presenter.StopLimitPrice = 0;

            Assert.AreEqual<string>("The stop limit price must be greater than 0", presenter["StopLimitPrice"]);
        }
        public void PresenterCreatesPublicSubmitCommand()
        {
            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), null);

            Assert.IsNotNull(presenter.SubmitCommand);
        }
        public void CancelRaisesCloseViewEvent()
        {
            bool closeViewRaised = false;

            var presenter = new TestableOrderDetailsPresenter(new MockOrderDetailsView(), null);
            presenter.CloseViewRequested += delegate
            {
                closeViewRaised = true;
            };

            presenter.CancelCommand.Execute(null);

            Assert.IsTrue(closeViewRaised);
        }
        public void PresenterUpdatesCommandsBasedOnActiveChangedOfView()
        {
            var view = new MockOrderDetailsView();
            var presenter = new TestableOrderDetailsPresenter(view, null);
            view.IsActive = true;
            view.RaiseIsActiveChanged();

            Assert.IsTrue(presenter.CancelCommand.IsActive);

            view.IsActive = false;
            view.RaiseIsActiveChanged();

            Assert.IsFalse(presenter.CancelCommand.IsActive);

            view.IsActive = true;
            view.RaiseIsActiveChanged();

            Assert.IsTrue(presenter.CancelCommand.IsActive);
        }