public void AccountService_DeleteUserAccountAsync_UnsuccessfulDeletion()
        {
            var loggedInUser = new User
            {
                Id       = "1243435",
                Name     = "Test User",
                Email    = "*****@*****.**",
                UserName = "******"
            };

            var mockRestaurantRepo    = Mock.Of <IRepository <Restaurant> >();
            var mockRestaurantTagRepo = Mock.Of <IRepository <RestaurantTag> >();
            var mockTagRepo           = Mock.Of <IRepository <Tag> >();
            var mockUserProvider      = new MockUserProvider().MockGetLoggedInUserAsync(loggedInUser);

            _mockUserManager.Setup(x => x.DeleteAsync(It.IsAny <User>()))
            .ReturnsAsync(IdentityResult.Failed());

            _mockSignInManager.Setup(x => x.CheckPasswordSignInAsync(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <bool>()))
            .ReturnsAsync(SignInResult.Success);

            var accountService = new AccountService(_mockUserManager.Object, _mockSignInManager.Object, mockRestaurantRepo, mockRestaurantTagRepo, mockTagRepo, mockUserProvider.Object);

            string deleteResult = accountService.DeleteUserAccountAsync("Password123_1").Result;

            Assert.Equal("Error deleting account", deleteResult);
        }
Exemplo n.º 2
0
        protected override void SeedData(ObjectConfigContext context, MockUserProvider userProvider)
        {
            Application app1 = DataSeed.Application1;
            Application app2 = DataSeed.Application2;

            ObjectConfig.Data.User viewer = DataSeed.UserViewer1;
            ObjectConfig.Data.User admin  = DataSeed.UserAdmin1;

            context.UsersApplications.Add(new UsersApplications(viewer, app1, ApplicationRole.Viewer));
            context.UsersApplications.Add(new UsersApplications(userProvider.User, app1, ApplicationRole.Administrator));
            context.UsersApplications.Add(new UsersApplications(userProvider.User, app2, ApplicationRole.Viewer));

            ObjectConfig.Data.Environment env1 = DataSeed.Environment1(app1);
            ObjectConfig.Data.Environment env2 = DataSeed.Environment2(app1);
            ForUpdateEnv = DataSeed.Environment3(app1);

            context.UsersEnvironments.Add(new UsersEnvironments(admin, env1, EnvironmentRole.Editor));
            context.UsersEnvironments.Add(new UsersEnvironments(admin, env2, EnvironmentRole.Editor));
            context.UsersEnvironments.Add(new UsersEnvironments(admin, ForUpdateEnv, EnvironmentRole.Editor));

            context.UsersEnvironments.Add(new UsersEnvironments(userProvider.User, env1, EnvironmentRole.TargetEditor));
            context.UsersEnvironments.Add(new UsersEnvironments(userProvider.User, env2, EnvironmentRole.TargetEditor));
            context.UsersEnvironments.Add(new UsersEnvironments(userProvider.User, ForUpdateEnv, EnvironmentRole.TargetEditor));

            _app2Env1 = DataSeed.Environment1(app2);
            context.UsersEnvironments.Add(new UsersEnvironments(admin, _app2Env1, EnvironmentRole.Editor));
        }
        public async Task AdminController_AddInvalidRestaurant()
        {
            var loggedInUser = new User
            {
                Id       = "1234567890",
                Name     = "Test User",
                Email    = "*****@*****.**",
                UserName = "******"
            };

            var restaurant = new Restaurant
            {
                Website     = "https://www.testrestaurant.com",
                Menu        = "https://www.testrestaurant.com/menu",
                PhoneNumber = "(215) 555 - 5555",
                TagString   = "Burgers,Fries,Beer"
            };

            await Assert.ThrowsAsync <System.ComponentModel.DataAnnotations.ValidationException>(async() =>
            {
                var mockAdminService = new MockAdminService().MockAddRestaurant(restaurant);
                var loggerMoq        = Mock.Of <ILogger <AdminController> >();
                var userProviderMoq  = new MockUserProvider().MockGetLoggedInUserAsync(loggedInUser);

                var controller = new AdminController(userProviderMoq.Object, loggerMoq, mockAdminService.Object);

                await controller.AddRestaurant(restaurant);
            });
        }
        protected override void SeedData(ObjectConfigContext context, MockUserProvider userProvider)
        {
            Application app1 = DataSeed.Application1;

            ObjectConfig.Data.User viewer = DataSeed.UserViewer1;
            context.UsersApplications.Add(new UsersApplications(viewer, app1, ApplicationRole.Viewer));
        }
Exemplo n.º 5
0
        protected override void SeedData(ObjectConfigContext context, MockUserProvider userProvider)
        {
            Application app1   = DataSeed.Application1;
            Application app2   = DataSeed.Application2;
            User        viewer = DataSeed.UserViewer1;
            User        admin  = DataSeed.UserAdmin1;

            context.UsersApplications.Add(new UsersApplications(viewer, app1, ApplicationRole.Viewer));
            context.UsersApplications.Add(new UsersApplications(userProvider.User, app1,
                                                                ApplicationRole.Administrator));
            context.UsersApplications.Add(new UsersApplications(userProvider.User, app2, ApplicationRole.Viewer));

            _env1 = DataSeed.Environment1(app1);
            _env2 = DataSeed.Environment2(app1);

            context.UsersEnvironments.Add(new UsersEnvironments(admin, _env1, EnvironmentRole.Editor));
            context.UsersEnvironments.Add(new UsersEnvironments(admin, _env2, EnvironmentRole.Editor));

            context.UsersEnvironments.Add(new UsersEnvironments(userProvider.User, _env1, EnvironmentRole.TargetEditor));
            context.UsersEnvironments.Add(new UsersEnvironments(userProvider.User, _env2, EnvironmentRole.Editor));

            _env1.CreateConfig("conf1");
            _env1.CreateConfig("conf2");
            _env1.CreateConfig("conf3");
        }
Exemplo n.º 6
0
        public async Task HomeController_Index_ListTagsForUser()
        {
            var mockUserProvider = new MockUserProvider().MockGetLoggedInUserAsync(_loggedInUser);
            var mockLogger       = Mock.Of <ILogger <HomeController> >();
            var mockHomeService  = new MockHomeService();

            var tags = new List <Tag>
            {
                new Tag {
                    TagId = 1, Name = "tag1"
                },
                new Tag {
                    TagId = 2, Name = "tag2"
                },
                new Tag {
                    TagId = 3, Name = "tag3"
                }
            };

            mockHomeService.MockGetUserTags(tags);

            var restaurants = new List <Restaurant>
            {
                new Restaurant {
                    RestaurantId = 1, Name = "Restaurant 1"
                },
                new Restaurant {
                    RestaurantId = 2, Name = "Restaurant 2"
                },
                new Restaurant {
                    RestaurantId = 3, Name = "Restaurant 3"
                },
                new Restaurant {
                    RestaurantId = 4, Name = "Restaurant 4"
                },
                new Restaurant {
                    RestaurantId = 5, Name = "Restaurant 5"
                }
            };

            mockHomeService.MockGetUserRestaurants(restaurants);

            var homeController = new HomeController(mockUserProvider.Object, mockLogger, mockHomeService.Object);

            homeController.TempData = _tempData;

            var result = await homeController.Index();

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <ViewModel.Randomizer>(viewResult.ViewData.Model);

            Assert.IsType <ViewModel.Randomizer>(model);
            Assert.Equal(3, model.Tags.Count);
            Assert.Equal(5, model.RestaurantCount);
        }
Exemplo n.º 7
0
        protected override void SeedData(ObjectConfigContext context, MockUserProvider userProvider)
        {
            Application app1 = DataSeed.Application1;
            Application app2 = DataSeed.Application2;

            ObjectConfig.Data.User viewer = DataSeed.UserViewer1;
            ObjectConfig.Data.User admin  = DataSeed.UserAdmin1;
            context.UsersApplications.Add(new UsersApplications(viewer, app1, ApplicationRole.Viewer));
            context.UsersApplications.Add(new UsersApplications(admin, app2, ApplicationRole.Administrator));
            context.UsersApplications.Add(new UsersApplications(userProvider.User, app1, ApplicationRole.Administrator));
        }
Exemplo n.º 8
0
        public void HomeService_GetUserRestaurants_ReturnsList()
        {
            var mockRestaurantRespository    = new MockRepository <Restaurant>().MockGet(_restaurants.AsQueryable());
            var mockRestaurantTagRespository = Mock.Of <IRepository <RestaurantTag> >();
            var mockUserProvider             = new MockUserProvider().MockGetUserId(_loggedInUser.Id);

            var homeService = new HomeService(mockRestaurantRespository.Object, mockRestaurantTagRespository, mockUserProvider.Object);

            var result = homeService.GetUserRestaurants();

            Assert.IsType <List <Restaurant> >(result.ToList());
            Assert.Equal(2, (int)result.Count());
        }
Exemplo n.º 9
0
        public async Task HomeController_Index_GetsRestaurantWithNoTags()
        {
            var mockUserProvider = new MockUserProvider().MockGetLoggedInUserAsync(_loggedInUser);
            var mockLogger       = Mock.Of <ILogger <HomeController> >();
            var mockHomeService  = new MockHomeService();

            var tags = new List <Tag>();

            mockHomeService.MockGetUserTags(tags);

            var restaurants = new List <Restaurant>
            {
                new Restaurant {
                    RestaurantId = 1, Name = "Restaurant 1"
                },
                new Restaurant {
                    RestaurantId = 2, Name = "Restaurant 2"
                },
                new Restaurant {
                    RestaurantId = 3, Name = "Restaurant 3"
                },
                new Restaurant {
                    RestaurantId = 4, Name = "Restaurant 4"
                },
                new Restaurant {
                    RestaurantId = 5, Name = "Restaurant 5"
                }
            };

            mockHomeService.MockGetUserRestaurants(restaurants);

            _tempData["choice_count"] = 0;

            var homeController = new HomeController(mockUserProvider.Object, mockLogger, mockHomeService.Object);

            homeController.TempData = _tempData;

            var randomizerViewModel = new ViewModel.Randomizer
            {
                Tags = new List <Tag>()
            };

            var result = await homeController.Index(randomizerViewModel);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <ViewModel.Randomizer>(viewResult.ViewData.Model);

            Assert.IsType <ViewModel.Randomizer>(model);
            Assert.Contains(model.SelectedRestaurant, restaurants);
        }
Exemplo n.º 10
0
        public void HomeService_GetUserRestaurantsWithTags_ReturnsEmpty()
        {
            var tags = new List <int>();

            var mockRestaurantRespository    = Mock.Of <IRepository <Restaurant> >();
            var mockRestaurantTagRespository = new MockRepository <RestaurantTag>().MockGet(_restaurantTags.AsQueryable().Where(rt => tags.Contains(rt.TagId) && rt.Restaurant.UserId == _loggedInUser.Id));
            var mockUserProvider             = new MockUserProvider().MockGetUserId(_loggedInUser.Id);

            var homeService = new HomeService(mockRestaurantRespository, mockRestaurantTagRespository.Object, mockUserProvider.Object);

            var result = homeService.GetUserRestaurantsWithTags(tags);

            Assert.IsType <List <Restaurant> >(result.ToList());
            Assert.Equal(0, (int)result.Count());
        }
Exemplo n.º 11
0
        public async Task It_should_get_user()
        {
            MockUserProvider testUser = new MockUserProvider(UserRole.Viewer);

            using TestServer server = TestServer(testUser);
            using HttpClient client = server.CreateHttpClient();
            HttpResponseMessage result = await client.GetAsync("feature/user");

            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            UserDto responseDto = result.Deserialize <UserDto>();

            Assert.Equal(testUser._user.DisplayName, responseDto.DisplayName);
            Assert.Equal(testUser._user.AccessRole, responseDto.AccessRole);
            Assert.Equal(testUser._user.Email, responseDto.Email);
            Assert.Equal(testUser._user.ExternalId, responseDto.ExternalId);
            Assert.NotEqual(0, responseDto.UserId);
        }
Exemplo n.º 12
0
        protected TestServer TestServer(MockUserProvider userProvider, Action <IServiceCollection> services = null)
        {
            void InternalAction(IServiceCollection s)
            {
                services?.Invoke(s);
                s.AddSingleton <IUserProvider>(userProvider);
            }

            TestServer testServer = TestServer(InternalAction);

            testServer.CreateClient();

            (ObjectConfigContext instance, IServiceScope scope) = testServer.GetInstanceFromScope <ObjectConfigContext>();
            instance.Database.EnsureCreated();
            SeedData(instance, userProvider);
            instance.SaveChanges();
            instance.Dispose();
            scope.Dispose();
            return(testServer);
        }
        public async Task AdminController_DeleteRestaurant()
        {
            var loggedInUser = new User
            {
                Id       = "1234567890",
                Name     = "Test User",
                Email    = "*****@*****.**",
                UserName = "******"
            };

            var restaurant = new Restaurant
            {
                Name         = "Test Restaurant",
                AddressLine1 = "",
                AddressLine2 = "",
                City         = "",
                State        = "",
                ZipCode      = "",
                Website      = "https://www.testrestaurant.com",
                Menu         = "https://www.testrestaurant.com/menu",
                PhoneNumber  = "(215) 555 - 5555",
                Latitude     = 0,
                Longitude    = 0,
                User         = loggedInUser,
                UserId       = loggedInUser.Id,
                TagString    = "Burgers,Fries,Beer"
            };

            var mockAdminService = new MockAdminService().MockDeleteRestaurant(restaurant);

            mockAdminService.MockGetRestaurantById(restaurant);

            var loggerMoq       = Mock.Of <ILogger <AdminController> >();
            var userProviderMoq = new MockUserProvider().MockGetLoggedInUserAsync(loggedInUser);

            var controller = new AdminController(userProviderMoq.Object, loggerMoq, mockAdminService.Object);

            var result = (RedirectToActionResult)await controller.DeleteRestaurant(restaurant);

            Assert.Equal("Restaurants", result.ActionName);
        }
        public void AccountService_ChangeUserPasswordAsync_UnsuccessfulChange()
        {
            var loggedInUser = new User
            {
                Name     = "Test User",
                Email    = "*****@*****.**",
                UserName = "******"
            };

            var mockRestaurantRepo    = Mock.Of <IRepository <Restaurant> >();
            var mockRestaurantTagRepo = Mock.Of <IRepository <RestaurantTag> >();
            var mockTagRepo           = Mock.Of <IRepository <Tag> >();
            var mockUserProvider      = new MockUserProvider().MockGetLoggedInUserAsync(null);

            _mockUserManager.Setup(x => x.ChangePasswordAsync(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            var accountService = new AccountService(_mockUserManager.Object, _mockSignInManager.Object, mockRestaurantRepo, mockRestaurantTagRepo, mockTagRepo, mockUserProvider.Object);

            bool successfulChange = accountService.ChangeUserPasswordAsync("Password123_1", "Password123_2").Result;

            Assert.False(successfulChange);
        }
Exemplo n.º 15
0
        public async Task HomeController_Index_NoTagsSelected()
        {
            var mockUserProvider = new MockUserProvider().MockGetLoggedInUserAsync(_loggedInUser);
            var mockLogger       = Mock.Of <ILogger <HomeController> >();
            var mockHomeService  = new MockHomeService();

            var tags = new List <Tag>
            {
                new Tag {
                    TagId = 1, Name = "tag1"
                },
                new Tag {
                    TagId = 2, Name = "tag2"
                },
                new Tag {
                    TagId = 3, Name = "tag3"
                }
            };

            mockHomeService.MockGetUserTags(tags);

            var restaurants = new List <Restaurant>
            {
                new Restaurant {
                    RestaurantId = 1, Name = "Restaurant 1"
                },
                new Restaurant {
                    RestaurantId = 2, Name = "Restaurant 2"
                },
                new Restaurant {
                    RestaurantId = 3, Name = "Restaurant 3"
                },
                new Restaurant {
                    RestaurantId = 4, Name = "Restaurant 4"
                },
                new Restaurant {
                    RestaurantId = 5, Name = "Restaurant 5"
                }
            };

            mockHomeService.MockGetUserRestaurantsWithTags(restaurants);

            _tempData["choice_count"] = 0;

            var homeController = new HomeController(mockUserProvider.Object, mockLogger, mockHomeService.Object);

            homeController.TempData = _tempData;

            var randomizerViewModel = new ViewModel.Randomizer
            {
                Tags = new List <Tag>
                {
                    new Tag {
                        TagId = 1, Name = "tag1", Selected = false
                    },
                    new Tag {
                        TagId = 2, Name = "tag2", Selected = false
                    },
                    new Tag {
                        TagId = 3, Name = "tag3", Selected = false
                    }
                }
            };

            var result = await homeController.Index(randomizerViewModel);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <ViewModel.Randomizer>(viewResult.ViewData.Model);

            Assert.IsType <ViewModel.Randomizer>(model);
            Assert.Equal("Please select at least one tag", model.ErrorMessage);
        }
Exemplo n.º 16
0
 protected virtual void SeedData(ObjectConfigContext context, MockUserProvider userProvider)
 {
 }
        public async Task AdminController_ListRestaurants()
        {
            var mockRestaurantsList = new List <Restaurant>
            {
                new Restaurant {
                    RestaurantId   = 1,
                    Name           = "Restaurant One",
                    RestaurantTags = new List <RestaurantTag>
                    {
                        new RestaurantTag
                        {
                            RestaurantId = 1,
                            Tag          = new Tag
                            {
                                Name = "Mexican"
                            }
                        },
                        new RestaurantTag
                        {
                            RestaurantId = 1,
                            Tag          = new Tag
                            {
                                Name = "Tacos"
                            }
                        }
                    }
                },
                new Restaurant {
                    RestaurantId   = 2,
                    Name           = "Restaurant Two",
                    RestaurantTags = new List <RestaurantTag>
                    {
                        new RestaurantTag
                        {
                            RestaurantId = 2,
                            Tag          = new Tag
                            {
                                Name = "Italian"
                            }
                        },
                        new RestaurantTag
                        {
                            RestaurantId = 2,
                            Tag          = new Tag
                            {
                                Name = "Pasta"
                            }
                        }
                    }
                },
            };

            var mockAdminService = new MockAdminService().MockGetUserRestaurants(mockRestaurantsList);
            var mockLogger       = Mock.Of <ILogger <AdminController> >();
            var mockUserProvider = new MockUserProvider().MockGetLoggedInUserAsync(new User {
                Id = "12345", Name = "Test User", Email = "*****@*****.**"
            });

            var controller = new AdminController(mockUserProvider.Object, mockLogger, mockAdminService.Object);

            controller.TempData = _tempData;

            var result = await controller.Restaurants();

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <ViewModel.RestaurantAdmin>(viewResult.ViewData.Model);

            Assert.IsType <ViewModel.RestaurantAdmin>(model);
            Assert.Equal(2, model.Restaurants.Count);
        }
Exemplo n.º 18
0
        /// <summary>
        /// Configure virtual app server and seed data
        /// </summary>
        /// <param name="userRole">use provider role</param>
        /// <param name="services">func for mock configure</param>
        /// <returns>Configured testserver</returns>
        protected virtual TestServer TestServer(UserRole userRole, Action <IServiceCollection> services = null)
        {
            MockUserProvider userProvider = new MockUserProvider(userRole);

            return(TestServer(userProvider, services));
        }