Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }