public void AddBillingInfo_Returns_RedirectToLogin() { Users user = new Users { Id = 1, UserName = "******" }; var cancel = new CancellationToken(); OrderModel model = new OrderModel { }; var mockProductService = new Mock <IProductService>(); var mockUserService = new Mock <IUserService>(); var mockOrderService = new Mock <IOrderService>(); var mockUserStore = new Mock <IUserStore <Users> >(); mockUserStore.Setup(u => u.CreateAsync(user, cancel)); var mockManager = new Mock <UserManager <Users> >(mockUserStore.Object, null, null, null, null, null, null, null, null); var Controller = new OrderController(mockProductService.Object, mockManager.Object, mockUserService.Object, mockOrderService.Object); var getResult = Controller.AddBillingInfo(model); Assert.IsType <JsonResult>(getResult); Assert.Equal("Login", getResult.Value); }
public void OrderController_AddBillingInfo_Success() { #region MockData Users user = new Users { UserName = "******", Email = "fakeEmail" }; var cancel = new CancellationToken(); var User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, "1"), })); BillingInfo billingInfo = new BillingInfo { Adress = "fakeAdress", City = "fakeCity", CountryOrState = "fakeCountry", Email = "fakeEmail", PhoneNumber = "fakeNumber", }; Invoice invoice = new Invoice { InvoiceDate = DateTimeOffset.UtcNow, UserId = 1 }; Manufacturer manufacturer = new Manufacturer { /* Id = 1,*/ Name = "manufacturerName" }; ItemDepartment itemDept = new ItemDepartment { /* Id = 1,*/ DeptName = "DeptName" }; ItemType itemType = new ItemType { /* Id = 1,*/ Name = "itemTypeName", ItemTypeHeaderImageUrl = "itemTypeHeaderImageUrl", ItemGroupName = "itemGroupName" }; ItemTypeSub itemSubType = new ItemTypeSub { /* Id = 1,*/ SubTypeName = "itemSubTypeName", ItemType = itemType }; Specs spec = new Specs { /* Id = 1, */ Description = "Description", Specification = "Specification", }; Model model = new Model { /* Id = 1,*/ ItemDepartment = itemDept, SpecsId = spec, TypeId = itemType, Name = "modelName" }; Items item = new Items { /* Id = 1, */ Availability = 1, Color = "itemColor", Price = 12, Discount = 0, ManuModel = manufacturer, Model = model, ItemTypeSub = itemSubType }; PaymentMethod paymentMethod = new PaymentMethod { Method = "fakeMethod" }; Status status = new Status { StatusText = "fakeStatus" }; var order = new Order { UserId = 1, ItemId = 1, StatusId = 1, NumberOfItems = 1, BillingInfoId = 1, InvoiceId = 1 }; var orderModel = new OrderModel { Adress = billingInfo.Adress, City = billingInfo.City, CountryOrState = billingInfo. CountryOrState, Email = billingInfo.Email, PhoneNumber = billingInfo.PhoneNumber, PaymentMethod = paymentMethod.Method }; #endregion var productService = new StoreProductService(_context); var userService = new UserService(_context); var orderService = new OrderService(_context); var mockUserStore = new Mock <IUserStore <Users> >(); mockUserStore.Setup(u => u.CreateAsync(user, cancel)); var manager = new UserManager <Users>(mockUserStore.Object, null, null, null, null, null, null, null, null); var Controller = new OrderController(productService, manager, userService, orderService) { ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = User } } }; var addItem = productService.AddItem(item, spec, model); var addUser = userService.AddUser(user); var addInvoice = orderService.AddInvoice(invoice); var addBillingInfo = Controller.AddBillingInfo(orderModel); var addPaymentMethod = orderService.AddPaymentMethod(paymentMethod); var addStatus = orderService.AddStatus(status); var addOrder = orderService.AddOrder(order); var getBillingInfo = orderService.GetBillingInfoById(1); Assert.Equal(1, getBillingInfo.Id); Assert.Equal("fakeAdress", getBillingInfo.Adress); Assert.IsType <JsonResult>(addBillingInfo); Assert.Equal("FinaliseOrders", addBillingInfo.Value); }