Esempio n. 1
0
        public void Test_UserCanPurchaseProductWhenOnlyOneInStock()
        {
            // Update data file
            List <Product> tempProducts = DeepCopy <List <Product> >(originalProducts);

            tempProducts.Where(u => u.Name == "Chips").Single().Quantity = 1;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    DataManager dataManager = new DataManager(users, products);

                    User  loggedInUser = LoginManager.LogIn(users);
                    Store store        = new Store(loggedInUser, dataManager);

                    Tusc tusc = new Tusc(loggedInUser, store);
                    tusc.Run();
                }

                Assert.IsTrue(writer.ToString().Contains("You bought 1 Chips"));
            }
        }
Esempio n. 2
0
        public void Test_ErrorOccursWhenBalanceLessThanPrice()
        {
            // Update data file
            List <User> tempUsers = DeepCopy <List <User> >(originalUsers);

            tempUsers.Where(u => u.Name == "Jason").Single().Balance = 0.0;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    DataManager dataManager = new DataManager(tempUsers, products);

                    User  loggedInUser = LoginManager.LogIn(tempUsers);
                    Store store        = new Store(loggedInUser, dataManager);

                    Tusc tusc = new Tusc(loggedInUser, store);
                    tusc.Run();
                }

                Assert.IsTrue(writer.ToString().Contains("You do not have enough money to buy that"));
            }
        }
Esempio n. 3
0
        public void Test_ProductsWithZeroQuantityDoNotAppearInMenu()
        {
            // Update data file
            List <Product> tempProducts = DeepCopy <List <Product> >(originalProducts);

            tempProducts.Where(u => u.Name == "Chips").Single().Quantity = 0;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    DataManager dataManager = new DataManager(users, tempProducts);

                    User  loggedInUser = LoginManager.LogIn(users);
                    Store store        = new Store(loggedInUser, dataManager);

                    Tusc tusc = new Tusc(loggedInUser, store);
                    tusc.Run();
                }

                Assert.IsFalse(writer.ToString().Contains(": Chips"));
            }
        }
Esempio n. 4
0
        public void Test_EmptyUserDoesNotThrowAnException()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products);
                }
            }
        }
Esempio n. 5
0
        public void Test_TuscDoesNotThrowAnException()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products);
                }
            }
        }
Esempio n. 6
0
        public void Test_UserCanCancelPurchase()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\nA\r\n0\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products);
                }

                Assert.IsTrue(writer.ToString().Contains("Purchase cancelled"));
            }
        }
Esempio n. 7
0
        public void Test_InvalidUserIsNotAccepted()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Joel\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products);
                }

                Assert.IsTrue(writer.ToString().Contains("You entered an invalid user"));
            }
        }
Esempio n. 8
0
        public void Test_ProductListContainsExitItem()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products);
                }

                Assert.IsTrue(writer.ToString().Contains("Type quit to exit the application"));
            }
        }
Esempio n. 9
0
        public void Test_InvalidPasswordIsNotAccepted()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfb\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products, transactions);
                }

                Assert.IsTrue(writer.ToString().Contains("You entered an invalid password"));
            }
        }
Esempio n. 10
0
        public void Test_ProductListContainsExitItem()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\n10\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products, transactions);
                }

                Assert.IsTrue(writer.ToString().Contains("10: Exit"));
            }
        }
Esempio n. 11
0
        public void Test_UserCanExitByEnteringQuit()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, products);
                }

                Assert.IsTrue(writer.ToString().Contains("Type quit to exit the application"));
                Assert.IsTrue(writer.ToString().Contains("Press Enter key to exit"));
            }
        }
Esempio n. 12
0
        public void Test_ProductsWithZeroQuantityDoNotAppearInMenu()
        {
            // Update data file
            List <Product> tempProducts = DeepCopy <List <Product> >(originalProducts);

            tempProducts.Where(u => u.Name == "Chips").Single().Qty = 0;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, tempProducts);
                }

                Assert.IsFalse(writer.ToString().Contains(": Chips"));
            }
        }
Esempio n. 13
0
        public void Test_UserCanPurchaseProductWhenOnlyOneInStock()
        {
            // Update data file
            List <Product> tempProducts = DeepCopy <List <Product> >(originalProducts);

            tempProducts.Where(u => u.Name == "Chips").Single().Qty = 1;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\nA\r\n1\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, tempProducts);
                }

                Assert.IsTrue(writer.ToString().Contains("You bought 1 Chips"));
            }
        }
Esempio n. 14
0
        public void Test_ErrorOccursWhenProductOutOfStock()
        {
            // Update data file
            List <Product> tempProducts = DeepCopy <List <Product> >(originalProducts);

            tempProducts.Where(u => u.Name == "Chips").Single().Qty = 1;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\nA\r\n2\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(users, tempProducts);
                }

                Assert.IsTrue(writer.ToString().Contains("is out of stock"));
            }
        }
Esempio n. 15
0
        public void Test_ErrorOccursWhenBalanceLessThanPrice()
        {
            // Update data file
            List <User> tempUsers = DeepCopy <List <User> >(originalUsers);

            tempUsers.Where(u => u.UserName == "Jason").Single().Balance = 0.0;

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\nA\r\n1\r\n" + EXIT_CODE + "\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    Tusc.Start(tempUsers, products);
                }

                Assert.IsTrue(writer.ToString().Contains("You do not have enough money to buy that"));
            }
        }
Esempio n. 16
0
        public void Test_TuscDoesNotThrowAnException()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    DataManager dataManager = new DataManager(users, products);

                    //Tusc.Run(users, products);
                    User  loggedInUser = LoginManager.LogIn(users);
                    Store store        = new Store(loggedInUser, dataManager);

                    Tusc tusc = new Tusc(loggedInUser, store);
                    tusc.Run();
                }
            }
        }
Esempio n. 17
0
        public void Test_UserCanCancelPurchase()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n0\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    DataManager dataManager = new DataManager(users, products);

                    User  loggedInUser = LoginManager.LogIn(users);
                    Store store        = new Store(loggedInUser, dataManager);

                    Tusc tusc = new Tusc(loggedInUser, store);
                    tusc.Run();
                }

                Assert.IsTrue(writer.ToString().Contains("Purchase cancelled"));
            }
        }
Esempio n. 18
0
        public void Test_ProductListContainsExitItem()
        {
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);

                using (var reader = new StringReader("Jason\r\nsfa\r\n1\r\n1\r\nquit\r\n\r\n"))
                {
                    Console.SetIn(reader);

                    DataManager dataManager = new DataManager(users, products);

                    User  loggedInUser = LoginManager.LogIn(users);
                    Store store        = new Store(loggedInUser, dataManager);

                    Tusc tusc = new Tusc(loggedInUser, store);
                    tusc.Run();
                }

                Assert.IsTrue(writer.ToString().Contains("Type quit to exit the application"));
            }
        }