public void TestLoad_NutritionIsNotNull_ShouldCallFactoryCreatNutritionViewModelCorrectly() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.GetByDate(It.IsAny <string>(), It.IsAny <DateTime>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var date = new DateTime(2, 3, 4); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Load(date); // Assert mockedFactory.Verify(f => f.CreateNutritionViewModel(nutrition, date)); }
public void TestGetNutrition_ServiceReturnsNutrition_ShouldCallFactoryCreateNutritionViewModel(int id) { // Arrange var date = new DateTime(1, 2, 3); var nutrition = new Nutrition { Date = date }; var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.GetById(It.IsAny <int>())).Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.GetNutrition(id); // Assert mockedFactory.Verify(f => f.CreateNutritionViewModel(nutrition, date), Times.Once); }
public void TestLoad_ShouldRenderCorrectViewWithModel() { // Arrange var viewModel = new NutritionViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(viewModel); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var date = new DateTime(2, 3, 4); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act, Assert controller .WithCallTo(c => c.Load(date)) .ShouldRenderDefaultPartialView() .WithModel <NutritionViewModel>(m => Assert.AreSame(viewModel, m)); }
public void TestStats_NoIdProvidedAndIsAuthenticated_ShouldSetModelCanDeleteToTrue() { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.IsAuthenticated).Returns(true); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Stats(null); // Assert Assert.IsTrue(model.CanDelete); }
public void TestStats_ShouldRenderDefaultViewWithCorrectModel(string userId) { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act, Assert controller .WithCallTo(c => c.Stats(null)) .ShouldRenderDefaultPartialView() .WithModel <NutritionStatsViewModel>(m => Assert.AreSame(model, m)); }
public void TestStats_ShouldCallFactoryCreateNutritionStatsViewModel(string userId) { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutritions = new List <Nutrition> { new Nutrition(), new Nutrition() }; var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.GetUserNutritionsSortedByDate(It.IsAny <string>())).Returns(nutritions); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Stats(null); // Assert mockedFactory.Verify(f => f.CreateNutritionStatsViewModel(nutritions), Times.Once); }
public void TestGetNutrition_ServiceReturnsNutrition_ShouldRenderPartialViewWithModel(int id) { // Arrange var date = new DateTime(1, 2, 3); var nutrition = new Nutrition { Date = date }; var model = new NutritionViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.GetById(It.IsAny <int>())).Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act, Assert controller .WithCallTo(c => c.GetNutrition(id)) .ShouldRenderPartialView("NutritionDetails") .WithModel <NutritionViewModel>(model); }
public void TestDetails_ServiceReturnsUser_ShouldRenderCorrectViewWithModel(string username, string userId) { // Arrange var user = new User { Id = userId }; var mockedService = new Mock <IUserService>(); mockedService.Setup(s => s.GetUserByUsername(It.IsAny <string>())).Returns(user); var model = new UserIdViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateUserIdViewModel(It.IsAny <string>())).Returns(model); var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Act, Assert controller .WithCallTo(c => c.Details(username)) .ShouldRenderDefaultView() .WithModel <UserIdViewModel>(model); }
public void TestInput_ShouldRenderCorrectViewWithModel() { // Arrange var model = new InputViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateInputViewModel(It.IsAny <DateTime>())).Returns(model); var date = new DateTime(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); mockedDateTimeProvider.Setup(p => p.GetCurrentTime()).Returns(date); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act, Assert controller .WithCallTo(c => c.Input()) .ShouldRenderDefaultView() .WithModel <InputViewModel>(m => Assert.AreSame(model, m)); }
public void TestSave_ModelStateIsNotValid_ShouldNotCallAuthenticationProviderCurrentUserId(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); controller.ModelState.AddModelError("", ""); // Act controller.Save(model); // Assert mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Never); }
public void TestConstructor_PassEverythingCorrectly_ShouldInitializeCorrectly() { // Arrange var mockedService = new Mock <IUserService>(); var mockedFactory = new Mock <IViewModelFactory>(); // Act var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Assert Assert.IsNotNull(controller); }
public void TestSave_ModelIdHasValue_ShouldRenderCorrectPartialViewWithModel(int id, int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes, Id = id }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.EditNutrition(It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act var result = controller.Save(model) as PartialViewResult; // Assert controller .WithCallTo(c => c.Save(model)) .ShouldRenderPartialView("Load") .WithModel <NutritionViewModel>(m => Assert.AreSame(model, m)); }
public void TestDetails_PassUsernameNull_ShouldNotCallUserServiceGetUserByUsername() { // Arrange var mockedService = new Mock <IUserService>(); var mockedFactory = new Mock <IViewModelFactory>(); var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Act controller.Details(null); // Assert mockedService.Verify(s => s.GetUserByUsername(It.IsAny <string>()), Times.Never); }
public void TestDetails_PassUsername_ShouldCallUserServiceGetUserByUsername(string username) { // Arrange var mockedService = new Mock <IUserService>(); var mockedFactory = new Mock <IViewModelFactory>(); var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Act controller.Details(username); // Assert mockedService.Verify(s => s.GetUserByUsername(username), Times.Once); }
public void TestDetails_ServiceReturnsNull_ShouldReturnHttpNotFoundResult(string username) { // Arrange var mockedService = new Mock <IUserService>(); var mockedFactory = new Mock <IViewModelFactory>(); var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Act var result = controller.Details(username); // Assert Assert.IsInstanceOf <HttpNotFoundResult>(result); }
public void TestDetails_ServiceReturnsNull_ShouldNotCallFactoryCreateUserIdViewModel(string username) { // Arrange var mockedService = new Mock <IUserService>(); var mockedFactory = new Mock <IViewModelFactory>(); var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Act controller.Details(username); // Assert mockedFactory.Verify(f => f.CreateUserIdViewModel(It.IsAny <string>()), Times.Never); }
public void TestSave_ModelIdHasValue_ShouldCallFactoryCreateNutritionViewModelWithResultFromService(int id, int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes, Id = id }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.EditNutrition(It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Save(model); // Assert mockedFactory.Verify(f => f.CreateNutritionViewModel(nutrition, date), Times.Once); }
public void TestConstructor_PassEverything_ShouldInitializeCorrectly() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); // Act var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Assert Assert.IsNotNull(controller); }
public void TestGetNutrition_ServiceReturnsNull_ShouldRenderPartialViewWithModelNull(int id) { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act, Assert controller .WithCallTo(c => c.GetNutrition(id)) .ShouldRenderPartialView("NutritionDetails"); }
public void TestIndex_ShouldRenderCorrectView() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act, Assert controller .WithCallTo(c => c.Index()) .ShouldRenderDefaultView(); }
public void TestSave_ModelIdDoesNotHaveValue_ShouldSetModelSaveResult(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.CreateNutrition(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act var result = controller.Save(model) as PartialViewResult; // Assert Assert.AreEqual(Constants.SavedSuccessfully, ((NutritionViewModel)result.Model).SaveResult); }
public void TestLoad_ModelStateIsValid_ShouldCallAuthenticationProviderCurrentUserId() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Load(new DateTime()); // Assert mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once); }
public void TestGetNutrition_ShouldCallSeasurementServiceGetById(int id) { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.GetNutrition(id); // Assert mockedNutritionService.Verify(s => s.GetById(id), Times.Once); }
public void TestDeleteNutrition_ShouldCallAuthenticationProviderCurrentUserId(int id, string userId) { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.DeleteNutrition(id); // Assert mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once); }
public void TestInput_ShouldCallDateTimeProviderGetCurrentTime() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Input(); // Assert mockedDateTimeProvider.Verify(p => p.GetCurrentTime(), Times.Once); }
public void TestLoad_ModelStateIsNotValid_ShouldRenderDefaultPartialView() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); controller.ModelState.AddModelError("", ""); // Act, Assert controller .WithCallTo(c => c.Load(new DateTime())) .ShouldRenderDefaultPartialView(); }
public void TestLoad_NutritionIsNull_ShouldCallFactoryCreateNutritonViewModelWithNull() { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var date = new DateTime(2, 3, 4); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Load(date); // Assert mockedFactory.Verify(f => f.CreateNutritionViewModel(null, date)); }
public void TestDeleteNutrition_ShouldReturnNull(int id, string userId) { // Arrange var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act var result = controller.DeleteNutrition(id); // Assert Assert.IsNull(result); }
public void TestSave_ModelIdDoesNotHaveValue_ShouldCallServiceCreateNutrition(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Save(model); // Assert mockedNutritionService.Verify(s => s.CreateNutrition(calories, protein, carbs, fats, water, fiber, sugar, notes, userId, date), Times.Once); }
public void TestDetails_ServiceReturnsUser_ShouldCallFactoryCreateUserIdViewModel(string username, string userId) { // Arrange var user = new User { Id = userId }; var mockedService = new Mock <IUserService>(); mockedService.Setup(s => s.GetUserByUsername(It.IsAny <string>())).Returns(user); var mockedFactory = new Mock <IViewModelFactory>(); var controller = new NutritionController(mockedService.Object, mockedFactory.Object); // Act controller.Details(username); // Assert mockedFactory.Verify(f => f.CreateUserIdViewModel(userId), Times.Once); }