public void GetCommentsFromService_SetPrevPageToModel_IfHavePreviousComments_AndReturnPartilaView()
        {
            // Arrange
            var mockedCollection = this.GetCommentModelCollection();

            var mockedLakeService    = new Mock <ILakeService>();
            var mockedCommentFactory = new Mock <ICommentFactory>();
            var mockedDateProvider   = new Mock <IDateProvider>();
            var mockedCommentService = new Mock <ICommentService>();

            mockedCommentService.Setup(s => s.GetCommentsByLakeName(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).Returns(mockedCollection.GetRange(1, Constants.ShowedComments)).Verifiable();
            mockedCommentService.Setup(s => s.GetCommentsCount(It.IsAny <string>())).Returns(mockedCollection.Count).Verifiable();

            var controller = new LakesController(
                mockedLakeService.Object,
                mockedCommentFactory.Object,
                mockedDateProvider.Object,
                mockedCommentService.Object);

            // Act
            var result = controller.GetComments(It.IsAny <string>(), 1) as PartialViewResult;
            var model  = result.ViewData.Model as GetCommentsViewModel;

            // Assert
            Assert.AreEqual("_CommentsPartial", result.ViewName);
            Assert.IsTrue(model.HasPrev);
            Assert.IsTrue(model.PrevPage == 0);

            mockedCommentService.Verify(s => s.GetCommentsByLakeName(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once);
            mockedCommentService.Verify(s => s.GetCommentsCount(It.IsAny <string>()), Times.Once);
        }
Exemple #2
0
        public void GetAllLakesFromService_GroupThem_AndRenderDefaultView()
        {
            // Arrange
            var mockedCollection = this.GetLakeModelCollection();

            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.GetAll()).Returns(mockedCollection).Verifiable();

            var mockedCommentFactory = new Mock <ICommentFactory>();
            var mockedDateProvider   = new Mock <IDateProvider>();
            var mockedCommentService = new Mock <ICommentService>();

            var controller = new LakesController(mockedLakeService.Object, mockedCommentFactory.Object, mockedDateProvider.Object, mockedCommentService.Object);

            // Act
            var view  = controller.Index() as ViewResult;
            var model = view.ViewData.Model as IEnumerable <IGrouping <char, LakeModel> >;

            // Assert
            var expectedResult = mockedCollection.GroupBy(l => l.Name.ToLower()[0]);

            Assert.IsTrue(view.ViewName == "");
            CollectionAssert.AreEquivalent(expectedResult, model);

            mockedLakeService.Verify(s => s.GetAll(), Times.Once);
        }
        public void AllShouldReturnNotFoundWithIdLessOrEqualToOne()
        {
            var lakesService     = new Mock <ILakesService>();
            var countriesService = new Mock <ICountriesService>();

            var controller = new LakesController(
                countriesService.Object,
                lakesService.Object);

            var result = controller.All(null, -1);

            Assert.IsType <NotFoundResult>(result);
        }
        public void ReturnJsonWithCorrectSuccessMessage_IfAddingCommentNotFailed()
        {
            // Arrange
            var mockedLake = new Lake();

            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedLake).Verifiable();
            mockedLakeService.Setup(s => s.Save()).Verifiable();

            var mockedCommentFactory = new Mock <ICommentFactory>();

            mockedCommentFactory.Setup(f => f.CreateComment(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>())).Verifiable();

            var mockedDateProvider = new Mock <IDateProvider>();

            mockedDateProvider.Setup(p => p.GetDate()).Verifiable();

            var mockedCommentService = new Mock <ICommentService>();

            var mockedContext = new Mock <ControllerContext>();

            mockedContext.Setup(c => c.HttpContext.User.Identity.Name).Returns("test");

            var controller = new LakesController(mockedLakeService.Object, mockedCommentFactory.Object, mockedDateProvider.Object, mockedCommentService.Object);

            controller.ControllerContext = mockedContext.Object;

            var model = new AddCommentViewModel()
            {
                Content = "test content", LakeName = "test lake"
            };

            // Act
            var     result  = controller.AddComment(model) as JsonResult;
            dynamic dResult = result.Data;

            // Assert
            Assert.AreEqual("success", dResult.status);
            Assert.AreEqual(GlobalMessages.AddCommentSuccessMessage, dResult.message);

            mockedLakeService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once);
            mockedLakeService.Verify(s => s.Save(), Times.Once);

            mockedCommentFactory.Verify(f => f.CreateComment(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>()), Times.Once);

            mockedDateProvider.Verify(p => p.GetDate(), Times.Once);
        }
        public void AddShouldReturnCorrectViewModel()
        {
            var lakesService = new Mock <ILakesService>();

            var countriesService = new Mock <ICountriesService>();

            countriesService.Setup(c => c.GetAllAsKeyValuePairs())
            .Returns(new List <KeyValuePair <string, string> >());

            var controller = new LakesController(
                countriesService.Object,
                lakesService.Object);

            var result = controller.Add();

            Assert.IsType <ViewResult>(result);

            var viewResult = result as ViewResult;

            Assert.IsType <AddLakeInputModel>(viewResult.Model);
        }
        public void AllShouldReturnLakeInListViewModelWithPaidType()
        {
            var lakesService = new Mock <ILakesService>();

            lakesService
            .Setup(l => l.GetAll <LakeInListViewModel>("Paid", 1, 6))
            .Returns(new List <LakeInListViewModel>());

            var countriesService = new Mock <ICountriesService>();

            var controller = new LakesController(
                countriesService.Object,
                lakesService.Object);

            var result = controller.All("Paid", 1);

            Assert.IsType <ViewResult>(result);

            var viewResult = result as ViewResult;

            Assert.IsType <LakesListViewModel>(viewResult.Model);
        }
        public void GetLakeFromService_AndRenderDefaultView_WithThisLake()
        {
            // Arrange
            var mockedLake        = new Lake();
            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedLake).Verifiable();

            var mockedCommentFactory = new Mock <ICommentFactory>();
            var mockedDateProvider   = new Mock <IDateProvider>();
            var mockedCommentService = new Mock <ICommentService>();

            var controller = new LakesController(mockedLakeService.Object, mockedCommentFactory.Object, mockedDateProvider.Object, mockedCommentService.Object);

            // Act
            var view  = controller.Details(null) as ViewResult;
            var model = view.ViewData.Model as Lake;

            // Assert
            Assert.AreEqual("", view.ViewName);
            Assert.AreEqual(mockedLake, model);
        }
        public void ReturnJsonWithCorrectErrorMessage_IfModelStateIsNotValid()
        {
            // Arrange
            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Verifiable();
            mockedLakeService.Setup(s => s.Save()).Verifiable();

            var mockedCommentFactory = new Mock <ICommentFactory>();

            mockedCommentFactory.Setup(f => f.CreateComment(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>())).Verifiable();

            var mockedDateProvider = new Mock <IDateProvider>();

            mockedDateProvider.Setup(p => p.GetDate()).Verifiable();

            var mockedCommentService = new Mock <ICommentService>();

            var controller = new LakesController(mockedLakeService.Object, mockedCommentFactory.Object, mockedDateProvider.Object, mockedCommentService.Object);

            controller.ModelState.AddModelError("Content", "Error");

            // Act
            var     result  = controller.AddComment(null) as JsonResult;
            dynamic dResult = result.Data;

            // Assert
            Assert.AreEqual("error", dResult.status);
            Assert.AreEqual(GlobalMessages.AddCOmentInvalidModelStateErrorMessage, dResult.message);

            mockedLakeService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Never);
            mockedLakeService.Verify(s => s.Save(), Times.Never);

            mockedCommentFactory.Verify(f => f.CreateComment(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>()), Times.Never);

            mockedDateProvider.Verify(p => p.GetDate(), Times.Never);
        }
Exemple #9
0
        public void LakeAreaCalculationTest(int p_x, int p_y, String[] p_map, int p_expected)
        {
            LakesController c = new LakesController();

            Assert.Equal(p_expected, c.GetLakeArea(p_x, p_y, p_map));
        }