public void ProperInitialization() { _vModel = new AddStockViewModel(_eventAggregatorMock.Object, _fundServiceMock.Object); Assert.That(_vModel.Price, Is.EqualTo(0)); Assert.That(_vModel.Quantity, Is.EqualTo(0)); Assert.That(_vModel.StockTypes, Is.EqualTo(Enum.GetValues(typeof(StockType)).Cast <StockType>().ToList())); Assert.That(_vModel.HasErrors, Is.True); Assert.That(_vModel.Errors, Is.Not.Empty); Assert.That(_vModel.Errors, Has.Exactly(1).EqualTo(AddStockViewModel.ErrorPriceIsLessOrEquallThanZerro)); Assert.That(_vModel.Errors, Has.Exactly(1).EqualTo(AddStockViewModel.ErrorQuantityIsLessOrEquallThanZerro)); Assert.That(_vModel.AddStockCommand.CanExecute(null), Is.False); }
public void ProperValidation() { _vModel = new AddStockViewModel(_eventAggregatorMock.Object, _fundServiceMock.Object); _vModel.StockTypeSelected = StockType.Bond; _vModel.Price = 1; _vModel.Quantity = 1; Assert.That(_vModel.Price, Is.EqualTo(1)); Assert.That(_vModel.Quantity, Is.EqualTo(1)); Assert.That(_vModel.StockTypeSelected, Is.EqualTo(StockType.Bond)); Assert.That(_vModel.HasErrors, Is.False); Assert.That(_vModel.Errors == null || !_vModel.Errors.Any(), Is.True); Assert.That(_vModel.AddStockCommand.CanExecute(null), Is.True); }
public MainWindowViewModel(IFundViewModel fundViewModel, ISummaryViewModel summaryViewModel, IAddStockViewModel addStockViewModel) { // This is painful to look at, and we should really use DI here with a proper composition root and bindings and everything, // but I couldn't bring myself to also introduce a DI container here. This solution feels slightly bloated as it is. // I hope the overall design that I strove for in the Domain Model will demonstrate my awareness of the concept. //Fund = new FundViewModel(TestDataProvider.CreateTestFund()); //Summary = new SummaryViewModel(Fund.GetStocksFunc); //AddStock = new AddStockViewModel(_addStockHelper); //_addStockHelper = addStockHelper; AddStock = addStockViewModel; Fund = fundViewModel; Summary = summaryViewModel; }
public void ProperAddButtonHandler() { _vModel = new AddStockViewModel(_eventAggregatorMock.Object, _fundServiceMock.Object); _vModel.StockTypeSelected = StockType.Bond; _vModel.Price = 10; _vModel.Quantity = 10; Assert.That(_vModel.AddStockCommand.CanExecute(null), Is.True); _vModel.AddStockCommand.Execute(null); _fundServiceMock.Setup(f => f.AddStock(It.IsAny <BaseStockModel>())).Callback((BaseStockModel model) => { Assert.That(model.Type, Is.EqualTo(_vModel.StockTypeSelected)); Assert.That(model.Price, Is.EqualTo(_vModel.Price)); Assert.That(model.Quantity, Is.EqualTo(_vModel.Quantity)); }); }