Example #1
0
        public void SetErrorMessage_InTempData_IfEditFailed()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLake = new Lake()
            {
                Name = "Test lake", Info = "Test info"
            };
            var mockedLakeService = new Mock <ILakeService>();

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

            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);
            var model      = new EditLakeViewModel()
            {
                LakeName = "Test name", OldName = "Test name", LakeInfo = "Test info"
            };

            // Act
            var result = controller.Edit(model, model.OldName) as ViewResult;

            // Assert
            Assert.AreEqual(GlobalMessages.EditLakeFailMessage, result.TempData[GlobalMessages.FailKey]);
        }
Example #2
0
        public void SetNewValuesToLake_AndSetSuccessMessage_InTempData_IfEditNotFailed()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLake = new Lake()
            {
                Name = "Test lake", Info = "Test info"
            };
            var mockedLakeService = new Mock <ILakeService>();

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

            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);
            var model      = new EditLakeViewModel()
            {
                LakeName = "Test name", OldName = "Test name", LakeInfo = "Test info"
            };

            // Act
            var result = controller.Edit(model, model.OldName) as ViewResult;

            // Assert
            Assert.AreEqual(model.LakeName, mockedLake.Name);
            Assert.AreEqual(model.LakeInfo, mockedLake.Info);
            Assert.AreEqual(GlobalMessages.EditLakeSuccessMessage, result.TempData[GlobalMessages.SuccessEditKey]);

            mockedLakeService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once);
            mockedLakeService.Verify(s => s.Save(), Times.Once);
        }
        public void GetLakeFromService_AndReturnDefaultView()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLake = new Lake()
            {
                Name = "Test lake", Info = "Test info"
            };
            var mockedLakeService = new Mock <ILakeService>();

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

            var mockedLocationService = new Mock <ILocationService>();

            var mockedFishService = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            // Act
            var result = controller.Edit(It.IsAny <string>()) as ViewResult;
            var model  = result.ViewData.Model as EditLakeViewModel;

            // Assert
            Assert.AreEqual("", result.ViewName);
            Assert.AreEqual(mockedLake.Name, model.LakeName);
            Assert.AreEqual(mockedLake.Info, model.LakeInfo);
        }
        public void GetFishAndLakesFromServices_AndCallDefault()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();
            var mockedLakeService     = new Mock <ILakeService>();

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

            var mockedLocationService = new Mock <ILocationService>();

            var mockedFishService = new Mock <IFishService>();

            mockedFishService.Setup(s => s.GetAll()).Verifiable();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            // Act
            var view = controller.UpdateFish() as ViewResult;

            // Assert
            Assert.IsNotNull(view.ViewData.Model);
            Assert.AreEqual("", view.ViewName);

            mockedLakeService.Verify(s => s.GetAll(), Times.Once);
            mockedFishService.Verify(s => s.GetAll(), Times.Once);
        }
        public void ReturnCorrectView()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();
            var mockedLakeService     = new Mock <ILakeService>();
            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            // Act
            var view = controller.Add() as ViewResult;

            // Assert
            Assert.IsTrue(view.ViewName == ""); // If ViewName isn`t empty string, then controller retuns not his default View
        }
Example #6
0
        public void ReturnJsonWithCorrectSuccessMessage_IfRemovingFishNotFailed_AndRemoveFishFromLake()
        {
            // Arrange
            var lakeName              = "Lake";
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedFish = new Fish();
            var mockedLake = new Lake();

            mockedLake.Fish.Add(mockedFish);
            var mockedLakeService = new Mock <ILakeService>();

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

            var mockedLocationService = new Mock <ILocationService>();

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

            var mockedFishService = new Mock <IFishService>();

            mockedFishService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedFish).Verifiable();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            var selectedFish = Enumerable.Repeat <string>("", 1);
            var model        = new UpdateFishViewModel()
            {
                SelectedFish = selectedFish, SelectedLake = lakeName
            };

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

            // Assert
            Assert.AreEqual("success", dResult.status);
            Assert.AreEqual(GlobalMessages.RemoveFishSuccessMessage, dResult.message);
            Assert.IsFalse(mockedLake.Fish.Contains(mockedFish));

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

            mockedFishService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once);
        }
        public void ReturnJsonWithAllModelErrors_IfModelStateIsNotValid()
        {
            // Arrange
            var mockedLakeFactory = new Mock <ILakeFactory>();

            mockedLakeFactory.Setup(f => f.CreateLake(It.IsAny <string>(), It.IsAny <Location>(), It.IsAny <string>())).Verifiable();

            var mockedLocationFactory = new Mock <ILocationFactory>();

            mockedLocationFactory.Setup(f => f.CreateLocation(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>())).Verifiable();

            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.Add(It.IsAny <Lake>())).Verifiable();
            mockedLakeService.Setup(s => s.Save()).Verifiable();

            var mockedLocationService = new Mock <ILocationService>();

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

            var mockedFishService = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            controller.ModelState.AddModelError("Name", "Test error!");

            // Act
            var     result  = controller.Add(new LakeViewModel()) as JsonResult;
            dynamic dResult = result.Data;

            // Assert
            Assert.AreEqual("error", dResult.status);
            StringAssert.Contains("Test error!", dResult.message);

            mockedLakeFactory.Verify(f => f.CreateLake(It.IsAny <string>(), It.IsAny <Location>(), It.IsAny <string>()), Times.Never);

            mockedLocationFactory.Verify(f => f.CreateLocation(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>()), Times.Never);

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

            mockedLocationService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Never);
        }
        public void ReturnJsonWithCorrectSuccessMessage_IfAddingLakeNotFailed()
        {
            // Arrange
            var mockedLakeFactory = new Mock <ILakeFactory>();

            mockedLakeFactory.Setup(f => f.CreateLake(It.IsAny <string>(), It.IsAny <Location>(), It.IsAny <string>())).Verifiable();

            var mockedLocationFactory = new Mock <ILocationFactory>();

            mockedLocationFactory.Setup(f => f.CreateLocation(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>())).Verifiable();

            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.Add(It.IsAny <Lake>())).Verifiable();
            mockedLakeService.Setup(s => s.Save()).Verifiable();

            var mockedLocationService = new Mock <ILocationService>();

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

            var mockedFishService = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            // Act
            var     result  = controller.Add(new LakeViewModel()) as JsonResult;
            dynamic dResult = result.Data;

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

            mockedLakeFactory.Verify(f => f.CreateLake(It.IsAny <string>(), It.IsAny <Location>(), It.IsAny <string>()), Times.Once);

            mockedLocationFactory.Verify(f => f.CreateLocation(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>()), Times.Once);

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

            mockedLocationService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once);
        }
        public void ReturnJsonWithCorrectErrorMessage_IfAddingFishFailed()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLakeService = new Mock <ILakeService>();

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

            var mockedLocationService = new Mock <ILocationService>();

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

            var mockedFishService = new Mock <IFishService>();

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

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            // Act
            var selectedFish = Enumerable.Empty <string>();
            var result       = controller.AddFish(new UpdateFishViewModel()
            {
                SelectedFish = selectedFish
            }) as JsonResult;
            dynamic dResult = result.Data;

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

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

            mockedFishService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Never);
        }
        public void HaveAuthenticationAttribute_AndCheckForModeratorRole()
        {
            var baseType = typeof(ModeratorBaseController);

            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();
            var mockedLakeService     = new Mock <ILakeService>();
            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var lakeController = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            Assert.IsTrue(baseType.IsAssignableFrom(lakeController.GetType()));
            var methodsInfo = lakeController.GetType().GetMethods();

            foreach (var method in methodsInfo)
            {
                if (method.Name == "Add")
                {
                    var attributes = method.DeclaringType.BaseType.CustomAttributes.Any(a => a.NamedArguments.Any(n => n.MemberName == "Roles" && n.TypedValue.Value.ToString() == "Moderator"));
                    Assert.IsTrue(attributes);
                }
            }
        }