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]); }
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 }
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); } } }