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); }
public void PresenterInitializesCommandsBasedOnActiveView() { var view = new MockOrderDetailsView(); view.IsActive = true; var presenter = new TestableOrderDetailsPresenter(view, null); Assert.IsTrue(presenter.CancelCommand.IsActive); }
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); }
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 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 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 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); }
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 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"]); }