Ejemplo n.º 1
0
 /// <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;
 }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        /// <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) }));
            }
        }