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")); } }
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")); } }
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")); } }
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); } } }
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); } } }
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")); } }
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")); } }
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")); } }
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")); } }
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")); } }
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")); } }
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")); } }
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")); } }
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")); } }
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")); } }
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(); } } }
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")); } }
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")); } }