private ProductsController GetController()
        {
            var testProduct = DomainTestUtil.GetTestProducts(1)[0];

            testProduct.Category = DomainTestUtil.GetTestCategories(1)[0];
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.ProductRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestProducts());
            dataManagerMock.Setup(x => x.ProductRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => testProduct);
            dataManagerMock.Setup(x => x.ProductRepository.SaveEntity(It.IsAny <Product>()))
            .Returns <Product>(a => Guid.NewGuid());
            dataManagerMock.Setup(x => x.CategoryRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestCategories());
            dataManagerMock.Setup(x => x.CategoryRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestCategories(1)[0]);

            var imageServiceMock = new Mock <IImageService>();
            var environmentMock  = new Mock <IWebHostEnvironment>();

            return(new ProductsController(dataManagerMock.Object, imageServiceMock.Object, environmentMock.Object)
            {
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
Beispiel #2
0
        private ProductController GetControllerWithNotAuthenticatedUser(bool returnsNullProduct = false)
        {
            var userManagerMock       = new Mock <IUserManager>();
            var userManagerHelperMock = new Mock <IUserManagerHelper>();
            var dataManagerMock       = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.ProductRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => returnsNullProduct ? null : _testProduct);

            dataManagerMock.Setup(x => x.ReviewRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestReviews());

            var identityMock = new Mock <GenericIdentity>("test");

            identityMock.SetupGet(x => x.IsAuthenticated).Returns(false);

            return(new ProductController(dataManagerMock.Object, userManagerMock.Object, userManagerHelperMock.Object)
            {
                TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()),
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(identityMock.Object),
                    }
                },
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
        private OrdersController GetController()
        {
            var userManagerMock = new Mock <IUserManager>();
            var dataManagerMock = new Mock <IDataManager>();

            userManagerMock.Setup(x => x.FindUserByName(It.IsAny <string>()))
            .Returns <string>(a => Task.FromResult(DomainTestUtil.GetTestUsers(1)[0]));

            dataManagerMock.Setup(x => x.OrderRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestOrders());

            dataManagerMock.Setup(x => x.OrderRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestOrders(1)[0]);

            return(new OrdersController(dataManagerMock.Object, userManagerMock.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(new GenericIdentity("test"))
                    }
                }
            });
        }
        private CartController GetControllerWithNotAuthenticatedUser()
        {
            var testProduct     = DomainTestUtil.GetTestProducts(1)[0];
            var userManagerMock = new Mock <IUserManager>();
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.ProductRepository.GetEntity(It.IsAny <Guid>()))
            .Returns(testProduct);

            var identityMock = new Mock <GenericIdentity>("test");

            identityMock.SetupGet(x => x.IsAuthenticated).Returns(false);

            return(new CartController(dataManagerMock.Object, userManagerMock.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(identityMock.Object),
                        Session = new MockHttpSession
                        {
                            ["cart"] = _testJsonString
                        }
                    }
                },
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
        private CartController GetControllerWithAuthenticatedUser()
        {
            var testProduct     = DomainTestUtil.GetTestProducts(1)[0];
            var userManagerMock = new Mock <IUserManager>();
            var dataManagerMock = new Mock <IDataManager>();

            userManagerMock.Setup(x => x.FindUserByName(It.IsAny <string>()))
            .Returns <string>(a => Task.FromResult(DomainTestUtil.GetTestUsers(1)[0]));

            dataManagerMock.Setup(x => x.ProductRepository.GetEntity(It.IsAny <Guid>()))
            .Returns(testProduct);

            dataManagerMock.Setup(x => x.OrderRepository.SaveEntity(It.IsAny <Order>()))
            .Returns <Order>(a => Guid.NewGuid());

            dataManagerMock.Setup(x => x.PurchaseDetailRepository.SaveEntity(It.IsAny <PurchaseDetail>()))
            .Returns <PurchaseDetail>(a => Guid.NewGuid());

            return(new CartController(dataManagerMock.Object, userManagerMock.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(new GenericIdentity("test")),
                        Session = new MockHttpSession
                        {
                            ["cart"] = _testJsonString
                        }
                    }
                },
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
Beispiel #6
0
        private ReviewsController GetController()
        {
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.ReviewRepository.GetAllEntities())
            .Returns(_testReviews);
            dataManagerMock.Setup(x => x.ReviewRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestReviews(1)[0]);
            dataManagerMock.Setup(x => x.ReviewRepository.SaveEntity(It.IsAny <Review>()))
            .Returns <Review>(a => Guid.NewGuid());
            dataManagerMock.Setup(x => x.ProductRepository.GetAllEntities())
            .Returns(_testProducts);

            var userManagerMock = new Mock <IUserManager>();

            userManagerMock.Setup(x => x.GetAllUsers())
            .Returns(DomainTestUtil.GetTestUsers());
            userManagerMock.Setup(x => x.FindUserById(It.IsAny <Guid>()))
            .Returns <Guid>(a => Task.FromResult(_testUser));

            return(new ReviewsController(dataManagerMock.Object, userManagerMock.Object)
            {
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
        private CategoryController GetController(bool returnsNullCategory = false)
        {
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.CategoryRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => returnsNullCategory ? null : DomainTestUtil.GetTestCategories(1)[0]);

            return(new CategoryController(dataManagerMock.Object));
        }
        private ProfileController GetController(
            bool changeablePassword     = true,
            bool confirmablePhoneNumber = true,
            bool findsByPhoneNumber     = true
            )
        {
            var testUser = DomainTestUtil.GetTestUsers(1)[0];

            var dataManagerMock       = new Mock <IDataManager>();
            var userManagerMock       = new Mock <IUserManager>();
            var userManagerHelperMock = new Mock <IUserManagerHelper>();
            var smsServiceMock        = new Mock <ISmsService>();
            var imageServiceMock      = new Mock <IImageService>();
            var environmentMock       = new Mock <IWebHostEnvironment>();

            dataManagerMock.Setup(x => x.OrderRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestOrders());

            userManagerMock.Setup(x => x.FindUserByName(It.IsAny <string>()))
            .Returns <string>(a => Task.FromResult(testUser));

            userManagerMock.Setup(x => x.FindUserById(It.IsAny <Guid>()))
            .Returns <Guid>(a => Task.FromResult(DomainTestUtil.GetTestUsers(1)[0]));

            userManagerMock.Setup(x => x.FindUserByPhoneNumber(It.IsAny <string>()))
            .Returns <string>(a => Task.FromResult(findsByPhoneNumber ? testUser : null));

            userManagerMock.Setup(x => x.ChangeUserPassword(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns <Guid, string, string>((a, b, c) => Task.FromResult(changeablePassword));

            userManagerMock.Setup(x => x.ConfirmPhoneNumber(It.IsAny <Guid>(), It.IsAny <string>()))
            .Returns <Guid, string>((a, b) => Task.FromResult(confirmablePhoneNumber));

            return(new ProfileController(
                       dataManagerMock.Object,
                       userManagerMock.Object,
                       userManagerHelperMock.Object,
                       smsServiceMock.Object,
                       imageServiceMock.Object,
                       environmentMock.Object
                       )
            {
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object,
                TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()),
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(new GenericIdentity("test"))
                    }
                }
            });
        }
        private CategoriesController GetController()
        {
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.CategoryRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestCategories());
            dataManagerMock.Setup(x => x.CategoryRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestCategories(1)[0]);
            dataManagerMock.Setup(x => x.CategoryRepository.SaveEntity(It.IsAny <Category>()))
            .Returns <Category>(a => Guid.NewGuid());

            return(new CategoriesController(dataManagerMock.Object)
            {
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
Beispiel #10
0
        public void IndexGetTest()
        {
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.ProductRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestProducts());
            dataManagerMock.Setup(x => x.CategoryRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestCategories());

            var controller = new SearchController(dataManagerMock.Object);

            var result     = controller.Index("query", "filter");
            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.Equal("~/Views/ListView.cshtml", viewResult.ViewName);
            var model = Assert.IsType <ListViewModel>(viewResult.Model);

            Assert.True(model.Products.Count < 9);
        }
Beispiel #11
0
        public void IndexTest()
        {
            var mock       = new Mock <IDataManager>();
            var categories = DomainTestUtil.GetTestCategories();

            mock.Setup(x => x.CategoryRepository.GetAllEntities())
            .Returns(categories);
            var homeController = new HomeController(mock.Object);

            var result = homeController.Index();

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <HomeViewModel>(viewResult.Model);

            foreach (var item in model.AllCategories)
            {
                Assert.True(item.BestRatedProducts.Count <= 5);
            }
        }
        private PurchaseDetailsController GetController()
        {
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.PurchaseDetailRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestPurchaseDetails());
            dataManagerMock.Setup(x => x.PurchaseDetailRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestPurchaseDetails(1)[0]);
            dataManagerMock.Setup(x => x.PurchaseDetailRepository.SaveEntity(It.IsAny <PurchaseDetail>()))
            .Returns <PurchaseDetail>(a => Guid.NewGuid());
            dataManagerMock.Setup(x => x.OrderRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestOrders());
            dataManagerMock.Setup(x => x.ProductRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestProducts());
            dataManagerMock.Setup(x => x.ProductRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestProducts(1)[0]);

            return(new PurchaseDetailsController(dataManagerMock.Object)
            {
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
Beispiel #13
0
        private ManagingController GetController()
        {
            var dataManagerMock = new Mock <IDataManager>();

            dataManagerMock.Setup(x => x.OrderRepository.GetAllEntities())
            .Returns(DomainTestUtil.GetTestOrders());
            dataManagerMock.Setup(x => x.OrderRepository.GetEntity(It.IsAny <Guid>()))
            .Returns <Guid>(a => DomainTestUtil.GetTestOrders(1)[0]);

            var notificationHubContextMock = new Mock <IHubContext <NotificationHub> >();
            var userConnectionManagerMock  = new Mock <IUserConnectionManager>();
            var emailServiceMock           = new Mock <IEmailService>();

            return(new ManagingController(
                       dataManagerMock.Object,
                       notificationHubContextMock.Object,
                       userConnectionManagerMock.Object,
                       emailServiceMock.Object
                       )
            {
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object
            });
        }
        private AccountController GetControllerWithNotAuthenticatedUser(
            bool loginSuccess          = false,
            bool externalLoginSuccess  = false,
            bool findsById             = true,
            bool findsByUsername       = false,
            bool findsByEmail          = false,
            bool confirmableEmail      = true,
            bool resetablePassword     = true,
            bool nullExternalLoginInfo = true
            )
        {
            var testUser = DomainTestUtil.GetTestUsers(1)[0];

            var userManagerMock = new Mock <IUserManager>();

            userManagerMock.Setup(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()))
            .Returns <string, string>((a, b) => Task.FromResult(loginSuccess));
            userManagerMock.Setup(x => x.FindUserById(It.IsAny <Guid>()))
            .Returns <Guid>(a => Task.FromResult(findsById ? testUser : null));
            userManagerMock.Setup(x => x.FindUserByName(It.IsAny <string>()))
            .Returns <string>(a => Task.FromResult(findsByUsername ? testUser : null));
            userManagerMock.Setup(x => x.FindUserByEmail(It.IsAny <string>()))
            .Returns <string>(a => Task.FromResult(findsByEmail ? testUser : null));
            userManagerMock.Setup(x => x.CreateUser(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns <User, string, Guid>((a, b, c) => Task.FromResult(Guid.NewGuid()));
            userManagerMock.Setup(x => x.GenerateEmailConfirmationToken(It.IsAny <Guid>()))
            .Returns <Guid>(a => Task.FromResult(string.Empty));
            userManagerMock.Setup(x => x.ConfirmEmail(It.IsAny <Guid>(), It.IsAny <string>()))
            .Returns <Guid, string>((a, b) => Task.FromResult(confirmableEmail));

            userManagerMock.Setup(x => x.ResetPassword(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns <Guid, string, string>((a, b, c) => Task.FromResult(resetablePassword));

            var emailServiceMock = new Mock <IEmailService>();
            var identityMock     = new Mock <GenericIdentity>("test");

            identityMock.SetupGet(x => x.IsAuthenticated).Returns(false);

            var urlHelperMock = new Mock <IUrlHelper>(MockBehavior.Strict);

            urlHelperMock.Setup(x => x.Action(It.IsAny <UrlActionContext>()))
            .Returns("callbackUrl");

            var externalLoginInfoMock = new Mock <ExternalLoginInfo>(new ClaimsPrincipal(), "test", "test", "test");
            var authSchemeMock        = new Mock <AuthenticationScheme>("test", "test", typeof(IAuthenticationHandler));

            var userManagerHelperMock = new Mock <IUserManagerHelper>();

            userManagerHelperMock.Setup(x => x.GetExternalLoginInfo())
            .Returns(Task.FromResult(nullExternalLoginInfo ? null : externalLoginInfoMock.Object));
            userManagerHelperMock.Setup(x => x.AddExternalLogin(It.IsAny <Guid>(), It.IsAny <ExternalLoginInfo>()))
            .Returns <Guid, ExternalLoginInfo>((a, b) => Task.FromResult(0));
            userManagerHelperMock.Setup(x => x.GetExternalAuthenticationSchemes())
            .Returns(Task.FromResult(new List <AuthenticationScheme> {
                authSchemeMock.Object
            }));
            userManagerHelperMock.Setup(x =>
                                        x.ConfigureExternalAuthenticationProperties(It.IsAny <string>(), It.IsAny <string>()))
            .Returns <string, string>((a, b) => new AuthenticationProperties {
                RedirectUri = "test"
            });
            userManagerHelperMock.Setup(x => x.ExternalLoginSignIn(It.IsAny <ExternalLoginInfo>()))
            .Returns(Task.FromResult(externalLoginSuccess));

            return(new AccountController(userManagerMock.Object, userManagerHelperMock.Object, emailServiceMock.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = new ClaimsPrincipal(identityMock.Object)
                    }
                },
                ObjectValidator = ControllerTestUtil.GetObjectModelValidatorMock().Object,
                Url = urlHelperMock.Object
            });
        }