public void testIfUserProvidesBlankUserNameReturnNull() { LoginManager loginmanager = new LoginManager(sampleUsers, ui); ui.queueStringResponse(""); User user = loginmanager.login(); Assert.Null(user); }
public void testIfUserProvidesBadUserNameTheyGetAnError() { LoginManager loginmanager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("NotARealUserName"); User user = loginmanager.login(); Assert.AreEqual("You entered an invalid user.", ui.getErrorText()); }
public static void Main(string[] args) { // Load users from data file List<User> users = JsonConvert.DeserializeObject<List<User>>(File.ReadAllText(@"Data/Users.json")); // Load products from data file List<Product> products = JsonConvert.DeserializeObject<List<Product>>(File.ReadAllText(@"Data/Products.json")); LoginManager loginManager = new LoginManager(users); Console.WriteLine("Welcome to TUSC"); Console.WriteLine("---------------"); User currentUser = loginManager.PromptLogin(); if (currentUser != null) { Console.Clear(); ConsoleHelper.WriteSuccess("Login successful! Welcome " + currentUser.UserName + "!"); Tusc.Start(currentUser, products, users); } else { Console.WriteLine(); Console.WriteLine("Press Enter key to exit"); Console.ReadLine(); } }
public void testLoginAsksForAUserName() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse(null); loginManager.login(); Assert.That(ui.getStringInputLabels(), Contains.Item(Environment.NewLine + "Enter Username:")); }
public void testIfUserProvidesBadUserNameTheyAreAskedAgain() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("NotARealUserName"); loginManager.login(); ICollection<string> inputLabels = ui.getStringInputLabels(); Assert.AreEqual(2, inputLabels.Count); foreach (string inputLabel in inputLabels) Assert.AreEqual(Environment.NewLine + "Enter Username:", inputLabel); }
public void testIfUserProvidesGoodUserNameTheyAreAskedForAPassword() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Al"); loginManager.login(); Assert.That(ui.getStringInputLabels(), Contains.Item("Enter Password:")); }
public void testCannotBeCreatedWithoutUi() { LoginManager loginManager = new LoginManager(sampleUsers, null); }
public void testCannotBeCreatedWithoutUserList() { LoginManager loginManager = new LoginManager(null, ui); }
public void testBugfixIfTwoUsersHaveTheSameNameAndPasswordTheFirstOneIsRetrieved() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Beth"); ui.queueStringResponse("hteB"); User user = loginManager.login(); Assert.AreSame(sampleUsers[1], user); }
public void testCanLoginAsTwoDifferentUsersWithSameNameButDifferentPassword() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Carl"); ui.queueStringResponse("lraC"); User user = loginManager.login(); Assert.AreSame(sampleUsers[2], user); ui.queueStringResponse("Carl"); ui.queueStringResponse("IAmAlsoCarl"); user = loginManager.login(); Assert.AreSame(sampleUsers[6], user); }
public void testBugfixCanLoginAsTheSixthUser() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Fara"); ui.queueStringResponse("araF"); User user = loginManager.login(); Assert.AreSame(sampleUsers[5], user); }
public void testIfUserProvidesGoodUserNameAndPasswordTheyGetThatUserBack() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Carl"); ui.queueStringResponse("lraC"); User user = loginManager.login(); Assert.AreSame(sampleUsers[2], user); }
public void testIfUserProvidesBadUserNameTheyAreAskedToLoginAgain() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Al"); ui.queueStringResponse("FakePassword"); loginManager.login(); ICollection<string> inputLabels = ui.getStringInputLabels(); Assert.AreEqual(3, inputLabels.Count); Assert.AreEqual(Environment.NewLine + "Enter Username:"******"Enter Password:"******"Enter Username:", inputLabels.ElementAt(2)); }
public void testIfUserProvidesGoodUserNameAndBadPasswordTheyGetAnError() { LoginManager loginManager = new LoginManager(sampleUsers, ui); ui.queueStringResponse("Al"); ui.queueStringResponse("FakePassword"); loginManager.login(); Assert.AreEqual("You entered an invalid password.", ui.getErrorText()); }
public static void Start(List<User> users, List<Product> products, UserInterface ui) { // Write welcome message ui.displayBanner("Welcome to TUSC"); LoginManager loginManager = new LoginManager(users, ui); User loggedInUser = loginManager.login(); if (loggedInUser == null) { ui.promptUserToExit(); return; } // Show welcome message ui.displayNotices("Login successful! Welcome " + loggedInUser.Name + "!"); // Show balance Console.WriteLine(); Console.WriteLine("Your balance is " + loggedInUser.Balance.ToString("C")); // Show product list while (true) { // Prompt for user input Console.WriteLine(); Console.WriteLine("What would you like to buy?"); for (int i = 0; i < 7; i++) { Product product = products[i]; Console.WriteLine(i + 1 + ": " + product.Name + " (" + product.Price.ToString("C") + ")"); } Console.WriteLine(products.Count + 1 + ": Exit"); // Prompt for user input string answer = ui.getStringInputFromUser("Enter a number:"); int selectedProductIndex = Convert.ToInt32(answer); selectedProductIndex = selectedProductIndex - 1; // Check if user entered number that equals product count if (selectedProductIndex == products.Count) { ui.promptUserToExit(); return; } else { Product selectedProduct = products[selectedProductIndex]; Console.WriteLine(); Console.WriteLine("You want to buy: " + selectedProduct.Name); Console.WriteLine("Your balance is " + loggedInUser.Balance.ToString("C")); // Prompt for user input answer = ui.getStringInputFromUser("Enter amount to purchase:"); int quantityToPurchase = Convert.ToInt32(answer); // Check if balance - quantity * price is less than 0 if (loggedInUser.Balance - selectedProduct.Price * quantityToPurchase < 0) { ui.displayErrors("You do not have enough money to buy that."); continue; } // Check if quantity is less than quantity if (selectedProduct.Quantity <= quantityToPurchase) { ui.displayErrors("Sorry, " + selectedProduct.Name + " is out of stock"); continue; } if (quantityToPurchase > 0) { // Balance = Balance - Price * Quantity loggedInUser.Balance = loggedInUser.Balance - selectedProduct.Price * quantityToPurchase; // Quanity = Quantity - Quantity selectedProduct.Quantity = selectedProduct.Quantity - quantityToPurchase; ui.displayNotices("You bought " + quantityToPurchase + " " + selectedProduct.Name, "Your new balance is " + loggedInUser.Balance.ToString("C")); } else { ui.displayWarnings("Purchase cancelled"); } } } }