/// <summary> /// Constructor for console cashier /// </summary> /// <param name="cm"></param> /// <param name="t"></param> /// <param name="rHan"></param> /// <param name="aHan"></param> /// <param name="cmHan"></param> /// <param name="cHan"></param> public ConsoleGUI(CashierModel cm, DateTime t, RemoveItemHandler rHan, AddItemHandler aHan, CompleteSaleHandler cmHan, CreateSaleHandler cHan) { _cm = cm; _rHan = rHan; _aHan = aHan; _cmHan = cmHan; _cHan = cHan; _date = t; }
public void AddsSaleToRepository_RaisesIntegrationEvent() { var repository = new Mock <ISalesRepository>(MockBehavior.Strict); repository.Setup(r => r.AddAsync(It.Is <Accounting.Domain.Sale>(p => IsExpectedSale(p)))).Returns(Task.CompletedTask).Verifiable(); repository.Setup(r => r.SaveChanges()).Returns(Task.CompletedTask).Verifiable(); var publisher = new Mock <IBusPublisher>(MockBehavior.Strict); publisher.Setup(p => p.Publish(It.Is <ISaleCreated>(e => IsExpectedEvent(e)))).Returns(Task.CompletedTask).Verifiable(); publisher.Setup(p => p.Publish(It.Is <ISaleStateChangeCreated>(e => IsExpectedEvent(e)))).Returns(Task.CompletedTask).Verifiable(); var userVerifier = new Mock <IUserVerifier>(MockBehavior.Strict); userVerifier.Setup(v => v.AssertExists(Cmd.UserId)).Returns(Task.CompletedTask).Verifiable(); var agVerifier = new Mock <IAccountingGroupVerifier>(MockBehavior.Strict); agVerifier.Setup(v => v.AssertExists(Cmd.AccountingGroupId)).Returns(Task.CompletedTask).Verifiable(); var posVerifier = new Mock <IPointOfSaleVerifier>(MockBehavior.Strict); posVerifier.Setup(v => v.AssertExists(Cmd.PointOfSaleId)).Returns(Task.CompletedTask).Verifiable(); var meansVerifier = new Mock <IAuthenticationMeansVerifier>(MockBehavior.Strict); meansVerifier.Setup(v => v.AssertExists(Cmd.AuthenticationMeansId)).Returns(Task.CompletedTask).Verifiable(); var productVerifier = new Mock <IProductVerifier>(MockBehavior.Strict); productVerifier.Setup(v => v.AssertExists(Cmd.ProductId)).Returns(Task.CompletedTask).Verifiable(); var offerVerifier = new Mock <IOfferVerifier>(MockBehavior.Strict); offerVerifier.Setup(v => v.AssertExists(Cmd.OfferId)).Returns(Task.CompletedTask).Verifiable(); var handler = new CreateSaleHandler(repository.Object, publisher.Object, agVerifier.Object, userVerifier.Object, posVerifier.Object, meansVerifier.Object, productVerifier.Object, offerVerifier.Object); var result = handler.HandleAsync(Cmd, new Mock <ICorrelationContext>().Object).GetAwaiter().GetResult(); Assert.IsTrue(result.Successful); repository.Verify(); publisher.Verify(); userVerifier.Verify(); agVerifier.Verify(); posVerifier.Verify(); meansVerifier.Verify(); productVerifier.Verify(); offerVerifier.Verify(); }
/// <summary> /// Initializes the cashier GUI. /// </summary> /// <param name="cm">An instance of cashier model</param> /// <param name="t">The date for the cashier's sales</param> /// <param name="rHan">RemoveItemHandler delegate</param> /// <param name="aHan">AddItemHandler delegate</param> /// <param name="cmHan">CompleteSaleHandler delegate</param> /// <param name="cHan">CreateSaleHandler delegate</param> public CashierGUI(CashierModel cm, DateTime t, RemoveItemHandler rHan, AddItemHandler aHan, CompleteSaleHandler cmHan, CreateSaleHandler cHan) { InitializeComponent(); _cashierModel = cm; _itemsd = _cashierModel.GetItemsForSale(); uxItems.Columns.Add("Name", 93); uxItems.Columns.Add("Price", 93); uxCart.Columns.Add("Name", 93); uxCart.Columns.Add("Quantity", 93); uxCart.Columns.Add("Price", 92); date = t; _totCost = 0; this._rHan = rHan; this._aHan = aHan; this._cmHan = cmHan; this._cHan = cHan; foreach (KeyValuePair <string, double> k in _itemsd) { uxItems.Items.Add(new ListViewItem(new[] { k.Key, String.Format("{0:c}", k.Value) })); } }