Exemplo n.º 1
0
        public void GetUsers_GetByUsername_CountIsExpectedValue(int id, int expectedCount)
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IEnumerable <IUser>  users         = systemManager.GetUsers(user => user.Id == id);

            Assert.AreEqual(expectedCount, users.Count());
        }
        public void BuyProduct_UserBuysProduct_ExpectInsufficientCreditsException()
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IUser    user    = CreateUser(0);
            IProduct product = CreateProduct(100, false);

            Assert.Throws <InsufficientCreditsException>(() => systemManager.BuyProduct(user, product));
        }
Exemplo n.º 3
0
        private static void Main(string[] args)
        {
            IBarcodeSystemManager   systemManager    = new BarcodeSystemManager().EnableLogging();
            IBarcodeSystemUI        systemUI         = new BarcodeSystemUI(systemManager);
            BarcodeSystemController systemController = new BarcodeSystemController(systemManager, systemUI);

            systemUI.Start();
        }
        public void BuyProduct_UserBuysProduct_ExpectDoesNotThrowInsufficientCreditsException
            (decimal userBalance, decimal productPrice, bool canBeBoughtOnCredit)
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IUser    user    = CreateUser(userBalance);
            IProduct product = CreateProduct(productPrice, canBeBoughtOnCredit);

            Assert.DoesNotThrow(() => systemManager.BuyProduct(user, product));
        }
        public void BuyProduct_UserBuysProduct_ExpectTransactionUserEqualsUser()
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IUser    user    = CreateUser(100);
            IProduct product = CreateProduct(100, false);

            BuyTransaction transaction = systemManager.BuyProduct(user, product);

            Assert.AreEqual(user, transaction.User);
        }
Exemplo n.º 6
0
        public void GetActiveProducts_GetAll_ExpectIsActive()
        {
            BarcodeSystemManager   systemManager  = new BarcodeSystemManager();
            IEnumerable <IProduct> activeProducts = systemManager.ActiveProducts;

            foreach (IProduct product in activeProducts)
            {
                Assert.IsTrue(product.IsActive);
            }
        }
        public void AddCreditsToAccount_BalanceChange_ExpectBalanceUpdated()
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IUser user = systemManager.GetUsers(u => u.Username != null).First();

            const decimal amountToAdd    = 50;
            decimal       initialBalance = user.Balance;

            systemManager.AddCreditsToAccount(user, amountToAdd);

            Assert.AreEqual(initialBalance + amountToAdd, user.Balance);
        }
        public void BuyProduct_UserBuysProduct_ExpectTransactionAmountEqualsProductPrice()
        {
            const decimal productPrice = 100;

            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IUser    user    = CreateUser(100);
            IProduct product = CreateProduct(productPrice, false);

            BuyTransaction transaction = systemManager.BuyProduct(user, product);

            Assert.AreEqual(productPrice, transaction.Amount);
        }
Exemplo n.º 9
0
        public void UserBalanceWarning_UserLowBalance_ExpectEventInvoked()
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();
            IUser user = systemManager.GetUsers(u => u.Username != null).First();

            bool wasEventInvoked = false;

            systemManager.UserBalanceWarning += (user, balance) => wasEventInvoked = true;
            user.Balance = 5;

            Assert.IsTrue(wasEventInvoked);
        }
Exemplo n.º 10
0
        public void GetProductById_GetInvalidProduct_ExpectAssertion()
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();

            Assert.Throws <ProductNotFoundException>(() => systemManager.GetProductById(0));
        }
Exemplo n.º 11
0
        public void GetProductById_GetFirstProduct_ExpectDoesNotThrow()
        {
            BarcodeSystemManager systemManager = new BarcodeSystemManager();

            Assert.DoesNotThrow(() => systemManager.GetProductById(1));
        }