public void ShouldReturnCartItemsById() { // Arrange var shoppingCart = new ShoppingCart("1"); shoppingCart.AddItem(new ShoppingCartItem() { ProductId = 1, ProductName = "Test Product", ProductPrice = 9.99m, Quantity = 3 }); var cartRepository = new StubIShoppingCartRepository { GetShoppingCartString = id => shoppingCart }; var controller = new CartController(cartRepository, null); SetupControllerForTests(controller); // Act var result = controller.Get("1"); var returnedCartItems = new JavaScriptSerializer().Deserialize <ICollection <CartItem> >(result.Content.ReadAsStringAsync().Result); // Assert Assert.AreEqual(result.StatusCode, HttpStatusCode.OK); Assert.AreEqual(returnedCartItems.Count, shoppingCart.ShoppingCartItems.Count); }
public void ShouldRegisterUser() { // Arrange var registrationInfo = new RegistrationInfo() { Addresses = new List <AddressInfo>() { new AddressInfo() { AddressLine1 = "123", City = "Redmond", CountryName = "USA", PostalCode = "12345", StateProvinceId = 33 } }, CreditCards = new List <CreditCardInfo>() { new CreditCardInfo() { CardNumber = "1111222233334444", CardType = "VISA", ExpMonth = 1, ExpYear = 2015 } }, EmailAddresses = new List <string>() { "*****@*****.**" }, FirstName = "Test", LastName = "User", Password = "******" }; var person = new Person() { PersonGuid = Guid.NewGuid() }; var personRepository = new StubIPersonRepository() { SavePersonPerson = newPerson => person }; var shoppingCartRepository = new StubIShoppingCartRepository() { GetShoppingCartString = shoppingCartId => new ShoppingCart(person.PersonGuid.ToString()) }; var orderRepository = new StubISalesOrderRepository() { IsOrderSavedGuid = shoppingCartId => false }; var controller = new AccountController(personRepository, shoppingCartRepository, orderRepository, new StubIStateProvinceRepository()); SetupControllerForTests(controller); // Act var result = controller.Register(registrationInfo); // Assert Assert.AreEqual(result.StatusCode, HttpStatusCode.Created); }
public void ShouldReturnNotFoundForCartItemsById() { // Arrange var cartRepository = new StubIShoppingCartRepository() { GetShoppingCartString = id => null }; var controller = new CartController(cartRepository, null); SetupControllerForTests(controller); // Act var result = controller.Get("1"); // Assert Assert.AreEqual(result.StatusCode, HttpStatusCode.NotFound); }
public void ShouldLogonUser() { // Arrange var person = new Person() { Id = 1, PasswordHash = "/y5qFg+Su7P2S+iiVMKgSHzlSemQan2hYvZywrqSkTE=", PasswordSalt = "bE3XiWw=", PersonGuid = Guid.NewGuid() }; var logonInfo = new LoginInfo() { UserName = "******", Password = "******" }; var personRepository = new StubIPersonRepository() { GetPersonByEmailString = emailAddress => person }; var shoppingCartRepository = new StubIShoppingCartRepository() { GetShoppingCartString = shoppingCartId => new ShoppingCart(person.PersonGuid.ToString()) }; var orderRepository = new StubISalesOrderRepository() { IsOrderSavedGuid = shoppingCartId => false }; var controller = new AccountController(personRepository, shoppingCartRepository, orderRepository, new StubIStateProvinceRepository()); SetupControllerForTests(controller); // Act var result = controller.Login(logonInfo); var returnedPerson = new JavaScriptSerializer().Deserialize <string>(result.Content.ReadAsStringAsync().Result); // Assert Assert.AreEqual(result.StatusCode, HttpStatusCode.OK); Assert.AreEqual(returnedPerson, person.PersonGuid.ToString()); }
public void ShouldAddAnItemToANewCart() { // Arrange var targetShoppingCartSaved = false; var cartRepository = new StubIShoppingCartRepository { SaveShoppingCartShoppingCart = (cart) => { targetShoppingCartSaved = true; return(cart); } }; var productRepository = new StubIProductRepository { ProductExistsInt32 = productId => productId.Equals(1) }; var controller = new CartController(cartRepository, productRepository); SetupControllerForTests(controller); // Act var result = controller.Add(new CartItem { ProductId = 1, ProductName = "Test Product", ProductPrice = 9.99m, Quantity = 1 }); // Assert Assert.IsTrue(targetShoppingCartSaved); Assert.AreEqual(result.StatusCode, HttpStatusCode.Created); }
public void ShouldSaveOrder() { // Arrange var personGuid = Guid.NewGuid(); var orderInfo = new OrderInfo() { BillingAddressId = 1, CartId = personGuid.ToString(), CreditCardId = 1, ShippingAddressId = 1 }; var person = new Person() { Id = 1 }; person.AddAddress(new Address { Id = 1, AddressLine1 = "street 1234", City = "city", PostalCode = "1001" }); person.AddCreditCard(new CreditCard { Id = 1, CardType = "card", CardNumber = "1234567890123456", ExpMonth = 11, ExpYear = 2019 }); var address = new Address() { Id = 1 }; var creditCard = new CreditCard() { Id = 1 }; var shoppingCartItem = new ShoppingCartItem() { ProductId = 1, ProductName = "Test Product", ProductPrice = 1, Quantity = 1 }; var shoppingCart = new ShoppingCart("1"); shoppingCart.AddItem(shoppingCartItem); var inventoryService = new StubIInventoryService { InventoryAndPriceCheckShoppingCart = shoppingCartToCheck => false }; var personRepository = new StubIPersonRepository { GetPersonGuid = personId => person, }; var shoppingCartRepository = new StubIShoppingCartRepository { GetShoppingCartString = shoppingCartId => shoppingCart }; var productRepository = new StubIProductRepository { GetProductInt32 = productId => new Product() { Id = productId } }; var controller = new OrdersController( new StubIOrderHistoryRepository(), shoppingCartRepository, personRepository, productRepository, new StubIOrderService(), inventoryService); SetupControllerForTests(controller); // Act var response = controller.Post(orderInfo); // Assert Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); }