コード例 #1
0
        public void GetEditShould_ReturnErrorView_WhenPlaceWasNotFound()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var placeId = Guid.NewGuid();
            var userId  = Guid.NewGuid().ToString();

            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            var emptyList = new List <Place>();

            placeServiceMock.Setup(s => s.GetPlaceById(placeId)).Returns(emptyList.AsQueryable());

            controller
            .WithCallTo(c => c.Edit(placeId))
            .ShouldRenderView("Error");
        }
コード例 #2
0
        public void GetPlacesByCategoryShould_ReturnViewWithCorrectModel_WhenPassedCategoryIsNotNull(string category)
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            InitializeMapper();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);
            var place = new Place()
            {
                Type = category
            };
            var list = new List <Place>()
            {
                place
            };

            placeServiceMock.Setup(s => s.GetPlacesByCategory(category)).Returns(list.AsQueryable());
            var model =
                controller
                .WithCallTo(c => c.GetPlacesByCategory(category, 10, 1))
                .ShouldRenderPartialView("_PartialList");
        }
コード例 #3
0
        public void GetEditShould_RedirectToDetails_WhenModelIsValid()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var id    = Guid.NewGuid();
            var model = new EditViewModel()
            {
                Id = id
            };
            var place = new Place()
            {
                Id = id, AddressId = Guid.NewGuid()
            };

            placeServiceMock.Setup(s => s.EditPlace(model.Id, model.Contact, model.Description, model.PhotoUrl,
                                                    model.WeekdayHours, model.WeekendHours, model.AverageBill))
            .Returns(place);

            controller
            .WithCallTo(c => c.Edit(model))
            .ShouldRedirectTo((Web.Controllers.PlacesController pc) => pc.Details(place.Id));
        }
コード例 #4
0
        public void GetEditShould_CallAddressServiceMethodEditAddress_WhenModelIsValid()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var id    = Guid.NewGuid();
            var model = new EditViewModel()
            {
                Id = id
            };
            var place = new Place()
            {
                Id = id, AddressId = Guid.NewGuid()
            };

            placeServiceMock.Setup(s => s.EditPlace(model.Id, model.Contact, model.Description, model.PhotoUrl,
                                                    model.WeekdayHours, model.WeekendHours, model.AverageBill))
            .Returns(place);

            controller.Edit(model);

            addressServiceMock.Verify(s => s.EditAddress(place.AddressId, model.Country, model.City, model.Area, model.Street, model.Number));
        }
コード例 #5
0
        public void PostCreateShould_CallAddressServiceMethodCreateAddress_WhenModelIsValid()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var model   = new CreateViewModel();
            var userId  = Guid.NewGuid().ToString();
            var address = new Address()
            {
                Id = Guid.NewGuid()
            };
            var place = new Place();

            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            addressServiceMock.Setup(s => s.CreateAddress(model.Country, model.City, model.Area, model.Street,
                                                          model.Number))
            .Returns(address);

            placeServiceMock.Setup(s => s.CreatePlace(model.Name, model.Types, model.Contact, model.WeekendHours,
                                                      model.WeekdayHours, model.Description, model.AverageBill, userId, address.Id))
            .Returns(place);

            controller.Create(model);

            addressServiceMock.Verify(
                s => s.CreateAddress(model.Country, model.City, model.Area, model.Street, model.Number), Times.Once);
        }
コード例 #6
0
        public void GetEditShould_ReturnDefaultView_WhenCurrentUserIsManagerOfFoundPlace()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            InitializeMapper();
            var placeId = Guid.NewGuid();
            var userId  = Guid.NewGuid().ToString();

            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            var place = new Place()
            {
                Id        = placeId,
                ManagerId = userId
            };
            var list = new List <Place>()
            {
                place
            };

            placeServiceMock.Setup(s => s.GetPlaceById(placeId)).Returns(list.AsQueryable());

            controller
            .WithCallTo(c => c.Edit(placeId))
            .ShouldRenderDefaultView();
        }
コード例 #7
0
        public void ListShould_ReturnDefaultView()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller.WithCallTo(c => c.List(10, 1)).ShouldRenderDefaultView();
        }
コード例 #8
0
        public void ContructorShould_SetPassedDataCorrectly_WhenDataIsNotNull()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            Assert.IsNotNull(controller);
        }
コード例 #9
0
        public void DetailsShould_ReturnErrorView_WhenIdIsNull()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller
            .WithCallTo(c => c.Details(null))
            .ShouldRenderView("Error");
        }
コード例 #10
0
        public void ListShould_CallPlaceServiceMethodGetAll()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller.List();

            placeServiceMock.Verify(s => s.GetAll(), Times.Once);
        }
コード例 #11
0
        public void GetCreateShould_CallFactoryMethodCreateCreateViewModel()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller.Create();

            factoryMock.Verify(f => f.CreateCreateViewModel(), Times.Once);
        }
コード例 #12
0
        public void GetPlacesByCategoryShould_CallPlaceServiceMethodGetPlacesByCategory_WhenPassedCategoryIsNotNull(string category)
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            InitializeMapper();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller.GetPlacesByCategory(category);

            placeServiceMock.Verify(s => s.GetPlacesByCategory(category), Times.Once);
        }
コード例 #13
0
        public void GetPlacesByCategoryShould_ReturnErrorView_WhenPassedCategoryIsNull()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            InitializeMapper();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller
            .WithCallTo(c => c.GetPlacesByCategory(null, 10, 1))
            .ShouldRenderView("Error");
        }
コード例 #14
0
        public void DetailsShould_CallPlaceServiceMethodGetPlaceWithReviews_WhenIdIsNotNull()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            InitializeMapper();
            var placeId = Guid.NewGuid();

            controller.Details(placeId);

            placeServiceMock.Verify(s => s.GetPlaceWithReviews(placeId), Times.Once);
        }
コード例 #15
0
        public void DetailsShould_ReturnView_WhenPlaceWasFound()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            InitializeMapper();

            var placeId  = Guid.NewGuid();
            var userId   = Guid.NewGuid().ToString();
            var username = "******";
            var place    = new Place()
            {
                Id = placeId
            };
            var list = new List <Place>()
            {
                place
            };

            placeServiceMock.Setup(s => s.GetPlaceWithReviews(placeId)).Returns(list.AsQueryable());
            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            authProviderMock.Setup(ap => ap.CurrentUserUsername).Returns(username);
            var emptyListReviews = new List <Review>();

            reviewsServiceMock.Setup(s => s.GetByUserAndPlace(placeId, userId)).Returns(emptyListReviews.AsQueryable());
            var reviewForm = new SingleReviewViewModel();

            factoryMock.Setup(f => f.CreateReviewViewModel(placeId, userId, username)).Returns(reviewForm);

            controller
            .WithCallTo(c => c.Details(placeId))
            .ShouldRenderDefaultView();
        }
コード例 #16
0
        public void MyPlacesShould_CallPlaceServiceMethodGetUserPlaces()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var userId = Guid.NewGuid().ToString();

            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);

            controller.MyPlaces();

            placeServiceMock.Verify(f => f.GetUserPlaces(userId), Times.Once);
        }
コード例 #17
0
        public void GetEditShould_ReturnSameView_WhenModelIsNotValid()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller.ModelState.AddModelError("key", "message");

            var model = new EditViewModel();

            controller
            .WithCallTo(c => c.Edit(model))
            .ShouldRenderDefaultView();
        }
コード例 #18
0
        public void GetCreateShould_ReturnViewWithCorrectModel()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var model = new CreateViewModel();

            factoryMock.Setup(f => f.CreateCreateViewModel()).Returns(model);

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            controller
            .WithCallTo(c => c.Create())
            .ShouldRenderDefaultView()
            .WithModel(model);
        }
コード例 #19
0
        public void GetEditShould_CallAuthProviderPropertyCurrentUserId_WhenPassedIdIsNotNull()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var placeId = Guid.NewGuid();
            var userId  = Guid.NewGuid().ToString();

            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);

            controller.Edit(placeId);

            authProviderMock.Verify(ap => ap.CurrentUserId, Times.Once);
        }
コード例 #20
0
        public void DetailsShould_CallAuthProviderPropertyCurrentUserId_WhenPlaceWasFound()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            InitializeMapper();

            var placeId  = Guid.NewGuid();
            var userId   = Guid.NewGuid().ToString();
            var username = "******";
            var place    = new Place()
            {
                Id = placeId
            };
            var list = new List <Place>()
            {
                place
            };

            placeServiceMock.Setup(s => s.GetPlaceWithReviews(placeId)).Returns(list.AsQueryable());
            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            authProviderMock.Setup(ap => ap.CurrentUserUsername).Returns(username);
            var emptyListReviews = new List <Review>();

            reviewsServiceMock.Setup(s => s.GetByUserAndPlace(placeId, userId)).Returns(emptyListReviews.AsQueryable());

            controller.Details(placeId);

            authProviderMock.Verify(ap => ap.CurrentUserId, Times.Once);
        }
コード例 #21
0
        public void DetailsShould_ReturnErrorView_WhenPlaceWasNotFound()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            InitializeMapper();

            var placeId   = Guid.NewGuid();
            var emptyList = new List <Place>();

            placeServiceMock.Setup(s => s.GetPlaceWithReviews(placeId)).Returns(emptyList.AsQueryable());

            controller
            .WithCallTo(c => c.Details(placeId))
            .ShouldRenderView("Error");
        }
コード例 #22
0
        public void MyPlacesShould_ReturnDefaultView()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            var userId = Guid.NewGuid().ToString();

            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            var model = new List <Place>();

            placeServiceMock.Setup(s => s.GetUserPlaces(userId)).Returns(model.AsQueryable());

            controller
            .WithCallTo(c => c.MyPlaces())
            .ShouldRenderDefaultView();
        }