// private readonly ClothDbContext context; public UnitOfWork() { //context = new ClothDbContext(); Clothes = new MockClothRepository(); // new ClothRepository(context); Orders = new MockOrderRepository(); //new OrderRepository(context); Categories = new MockCategoryRepository(); //new CategoryRepository(context); }
public void NavigatingToWhenNoShippingMethodSelected_RecalculatesOrder() { var shippingMethods = new List <ShippingMethod> { new ShippingMethod { Id = 1, Cost = 0 } }; var shoppingCartItems = new List <ShoppingCartItem> { new ShoppingCartItem { Quantity = 1, Currency = "USD", Product = new Product() } }; var order = new Order { ShoppingCart = new ShoppingCart(shoppingCartItems) { Currency = "USD", TotalPrice = 100 }, ShippingAddress = new Address { Id = "1" }, BillingAddress = new Address { Id = "1" }, PaymentMethod = new PaymentMethod() { CardNumber = "1234" }, ShippingMethod = null }; var shippingMethodService = new MockShippingMethodService { GetShippingMethodsAsyncDelegate = () => Task.FromResult <IEnumerable <ShippingMethod> >(shippingMethods) }; var orderRepository = new MockOrderRepository { CurrentOrder = order }; var shoppingCartRepository = new MockShoppingCartRepository { GetShoppingCartAsyncDelegate = () => Task.FromResult(order.ShoppingCart) }; var checkoutDataRepository = new MockCheckoutDataRepository(); checkoutDataRepository.GetShippingAddressAsyncDelegate = s => Task.FromResult(new Address()); checkoutDataRepository.GetBillingAddressAsyncDelegate = s => Task.FromResult(new Address()); checkoutDataRepository.GetPaymentMethodDelegate = s => Task.FromResult(new PaymentMethod { CardNumber = "1234" }); var target = new CheckoutSummaryPageViewModel(new MockNavigationService(), new MockOrderService(), orderRepository, shippingMethodService, checkoutDataRepository, shoppingCartRepository, new MockAccountService(), new MockResourceLoader(), null, null); target.OnNavigatedTo(new NavigatedToEventArgs { Parameter = null, NavigationMode = NavigationMode.New }, null); Assert.AreEqual("$0.00", target.ShippingCost); Assert.AreEqual("$100.00", target.OrderSubtotal); Assert.AreEqual("$100.00", target.GrandTotal); }
public void SelectCheckoutData_Opens_AppBar() { var shippingMethods = new List <ShippingMethod>() { new ShippingMethod() { Id = 1, Cost = 0 } }; var shoppingCartItems = new List <ShoppingCartItem>() { new ShoppingCartItem() { Quantity = 1, Currency = "USD", Product = new Product() } }; var order = new Order() { ShoppingCart = new ShoppingCart(shoppingCartItems) { Currency = "USD", FullPrice = 100 }, ShippingAddress = new Address(), BillingAddress = new Address(), PaymentMethod = new PaymentMethod() { CardNumber = "1234" }, ShippingMethod = shippingMethods.First() }; var shippingMethodService = new MockShippingMethodService() { GetShippingMethodsAsyncDelegate = () => Task.FromResult <IEnumerable <ShippingMethod> >(shippingMethods) }; var orderRepository = new MockOrderRepository() { CurrentOrder = order }; var shoppingCartRepository = new MockShoppingCartRepository(); shoppingCartRepository.GetShoppingCartAsyncDelegate = () => Task.FromResult(order.ShoppingCart); var checkoutDataRepository = new MockCheckoutDataRepository(); checkoutDataRepository.GetShippingAddressAsyncDelegate = s => Task.FromResult(new Address()); checkoutDataRepository.GetBillingAddressAsyncDelegate = s => Task.FromResult(new Address()); checkoutDataRepository.GetPaymentMethodDelegate = s => Task.FromResult(new PaymentMethod { CardNumber = "1234" }); var target = new CheckoutSummaryPageViewModel(new MockNavigationService(), new MockOrderService(), orderRepository, shippingMethodService, checkoutDataRepository, shoppingCartRepository, new MockAccountService(), new MockResourceLoader(), null, null); target.OnNavigatedTo(new NavigatedToEventArgs { Parameter = null, NavigationMode = NavigationMode.New }, null); Assert.IsFalse(target.IsBottomAppBarOpened); target.SelectedCheckoutData = target.CheckoutDataViewModels.First(); Assert.IsTrue(target.IsBottomAppBarOpened); }
public void ProcessFormAsync_WithServerValidationError_ShowsMessage() { var shippingAddressPageViewModel = new MockShippingAddressPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = () => Task.Delay(0), Address = new Address() }; var billingAddressPageViewModel = new MockBillingAddressPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = () => Task.Delay(0), Address = new Address() }; var paymentMethodPageViewModel = new MockPaymentMethodPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = async() => await Task.Delay(0), PaymentMethod = new PaymentMethod() }; var accountService = new MockAccountService() { VerifyUserAuthenticationAsyncDelegate = () => Task.FromResult(new UserInfo()), SignedInUser = new UserInfo() }; var shoppingCartRepository = new MockShoppingCartRepository() { GetShoppingCartAsyncDelegate = () => Task.FromResult(new ShoppingCart(null)) }; var orderRepository = new MockOrderRepository() { CreateBasicOrderAsyncDelegate = (s, cart, arg3, arg4, arg5) => { var result = new ModelValidationResult(); result.ModelState.Add("order.ShippingAddress.ZipCode", new List <string> { "Validation Message" }); throw new ModelValidationException(result); } }; var target = new CheckoutHubPageViewModel(new MockNavigationService(), accountService, orderRepository, shoppingCartRepository, shippingAddressPageViewModel, billingAddressPageViewModel, paymentMethodPageViewModel, null, null); target.GoNextCommand.Execute(); Assert.IsTrue(target.IsShippingAddressInvalid); }
public void AddOrdersFromFiles_MockUtilsClassAndMethods_ReturnAllOrdersInFiles() { var path = "TestFiles\\"; var utils = new Utils(); var mockedUtils = new Mock <CreateAddOrdersFromFilesMock>(); mockedUtils.Setup(e => e.FileIsAlreadyRegistered(It.IsAny <string>())).Returns(false); mockedUtils.Setup(e => e.OrderIsAlreadyRegistered(It.IsAny <OrderRow>())).Returns(false); mockedUtils.Setup(e => e.AddedOrderSuccessfullyToDatabase(It.IsAny <OrderRow>())).Returns(true); MockOrderRepository or = new MockOrderRepository(mockedUtils.Object); var orders = or.AddOrdersFromFiles(new List <OrderRow>(), path); mockedUtils.VerifyAll(); Assert.AreEqual(orders.Count, 13); Assert.AreEqual(orders[5].OrderNumber, "17890"); Assert.AreEqual(orders[8].Name, "Little Guys"); Assert.AreEqual(orders[10].OrderLineNumber, "0003"); }
public void Checkout_WhenShoppingCartContainsItems_ReturnsARedirectToAction() { // Arrange AppDbContext context = MockAppDbContext.BuildContextInMemoryDb(); BuildCartWithItems(context); Order order = new Order(); var mockOrderRepository = new MockOrderRepository() .CreateOrder(order); var sut = new OrderController(mockOrderRepository.Object, new ShoppingCart(context)); // Act var result = sut.Checkout(order); // Assert Assert.IsAssignableFrom <RedirectToActionResult>(result); mockOrderRepository.Verify(x => x.CreateOrder(order), Times.Once()); }
public void Checkout_WhenShoppingCartIsEmpty_ReturnsAViewResult() { // Arrange AppDbContext context = MockAppDbContext.BuildContextInMemoryDb(); BuildEmptyCart(context); Order order = new Order(); var mockOrderRepository = new MockOrderRepository() .CreateOrder(order); var sut = new OrderController(mockOrderRepository.Object, new ShoppingCart(context)); // Act var result = sut.Checkout(order); // Assert Assert.IsAssignableFrom <ViewResult>(result); mockOrderRepository.Verify(x => x.CreateOrder(order), Times.Never()); }
public OrderServiceTests() { repository = new MockOrderRepository(); cart = new Cart(); orderService = new OrderService(repository, cart); }
public async Task ExecuteGoNextCommand_ProcessesFormsAndNavigates_IfViewModelsAreValid() { bool shippingInfoProcessed = false; bool billingInfoProcessed = false; bool paymentInfoProcessed = false; bool navigated = false; var shippingAddressPageViewModel = new MockShippingAddressPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = () => { shippingInfoProcessed = true; return(Task.Delay(0)); } }; var billingAddressPageViewModel = new MockBillingAddressPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = () => { billingInfoProcessed = true; return(Task.Delay(0)); } }; var paymentMethodPageViewModel = new MockPaymentMethodPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = async() => { paymentInfoProcessed = true; await Task.Delay(0); } }; var accountService = new MockAccountService() { VerifyUserAuthenticationAsyncDelegate = () => Task.FromResult(new UserInfo()), SignedInUser = new UserInfo() { UserName = "******" } }; var orderRepository = new MockOrderRepository() { CreateBasicOrderAsyncDelegate = (a, b, c, d, e) => Task.FromResult(new Order() { Id = 1 }) }; var shoppingCartRepository = new MockShoppingCartRepository() { GetShoppingCartAsyncDelegate = () => Task.FromResult(new ShoppingCart(null)) }; var navigationService = new MockNavigationService() { NavigateDelegate = (a, b) => navigated = true }; var target = new CheckoutHubPageViewModel(navigationService, accountService, orderRepository, shoppingCartRepository, shippingAddressPageViewModel, billingAddressPageViewModel, paymentMethodPageViewModel, null, null); await target.GoNextCommand.Execute(); Assert.IsTrue(shippingInfoProcessed); Assert.IsTrue(billingInfoProcessed); Assert.IsTrue(paymentInfoProcessed); Assert.IsTrue(navigated); }
public async Task SettingUseShippingAddressToTrue_CopiesValuesFromShippingAddressToBilling() { var mockAddress = new Address() { FirstName = "TestFirstName", MiddleInitial = "TestMiddleInitial", LastName = "TestLastName", StreetAddress = "TestStreetAddress", OptionalAddress = "TestOptionalAddress", City = "TestCity", State = "TestState", ZipCode = "123456", Phone = "123456" }; var compareAddressesFunc = new Func <Address, Address, bool>((Address a1, Address a2) => { return(a1.FirstName == a2.FirstName && a1.MiddleInitial == a2.MiddleInitial && a1.LastName == a2.LastName && a1.StreetAddress == a2.StreetAddress && a1.OptionalAddress == a2.OptionalAddress && a1.City == a2.City && a1.State == a2.State && a1.ZipCode == a2.ZipCode && a1.Phone == a2.Phone); }); var shippingAddressPageViewModel = new MockShippingAddressPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = () => Task.Delay(0), Address = mockAddress }; var billingAddressPageViewModel = new MockBillingAddressPageViewModel() { ValidateFormDelegate = () => true }; billingAddressPageViewModel.ProcessFormAsyncDelegate = () => { // The Address have to be updated before the form is processed Assert.IsTrue(compareAddressesFunc(shippingAddressPageViewModel.Address, billingAddressPageViewModel.Address)); return(Task.Delay(0)); }; var paymentMethodPageViewModel = new MockPaymentMethodPageViewModel() { ValidateFormDelegate = () => true, ProcessFormAsyncDelegate = async() => await Task.Delay(0), }; var accountService = new MockAccountService() { VerifyUserAuthenticationAsyncDelegate = () => Task.FromResult(new UserInfo()), SignedInUser = new UserInfo() }; var orderRepository = new MockOrderRepository() { CreateBasicOrderAsyncDelegate = (userId, shoppingCart, shippingAddress, billingAddress, paymentMethod) => { // The Address information stored in the order must be the same Assert.IsTrue(compareAddressesFunc(shippingAddress, billingAddress)); return(Task.FromResult <Order>(new Order())); } }; var shoppingCartRepository = new MockShoppingCartRepository() { GetShoppingCartAsyncDelegate = () => Task.FromResult(new ShoppingCart(null)) }; var navigationService = new MockNavigationService() { NavigateDelegate = (a, b) => true }; var target = new CheckoutHubPageViewModel(navigationService, accountService, orderRepository, shoppingCartRepository, shippingAddressPageViewModel, billingAddressPageViewModel, paymentMethodPageViewModel, null, null); target.UseSameAddressAsShipping = true; await target.GoNextCommand.Execute(); }
public UnitTestsOrderAPI() { repos = new MockOrderRepository(); }