public async Task TaskSubitemDetailsTest() { var mockServiceProvider = new MockServiceProvider(); var mockUserService = new Mock <IUserService>(); var mockTaskSubitemService = new Mock <ITaskSubitemService>(); var mockTaskItemService = new Mock <ITaskItemService>(); mockUserService.Setup(x => x.GetUsersFromGroup(It.IsAny <string>())) .ReturnsTask <IUserService, string, ObservableCollection <User> >(GetUsersFromGroup); mockTaskSubitemService.Setup(x => x.GetTaskSubitems(It.IsAny <string>())) .ReturnsTask <ITaskSubitemService, string, ObservableCollection <TaskSubitem> >(GetTaskSubitems); mockTaskSubitemService.Setup(x => x.GetAvailableTaskStatuses()) .ReturnsTask <ITaskSubitemService, ObservableCollection <TaskStatus> >(GetAvailableTaskStatuses); mockTaskItemService.Setup(x => x.GetTaskItemById(It.IsAny <string>())) .ReturnsTask <ITaskItemService, string, TaskItem>(GetTaskItemById); mockUserService.Setup(x => x.GetUserId(It.IsAny <string>(), It.IsAny <UserDomainEnum>())) .ReturnsTask <IUserService, string, UserDomainEnum, string>((x, y) => "1234"); mockTaskSubitemService.Setup(x => x.GetTaskSubitemById(It.IsAny <string>())) .ReturnsTask <ITaskSubitemService, string, TaskSubitem>(GetTaskSubitemById); mockTaskSubitemService.Setup(x => x.GetTaskSubitemNameByTaskSubitemId(It.IsAny <string>())) .ReturnsTask <ITaskSubitemService, string, string>(GetTaskSubitemNameByTaskSubitemId); mockServiceProvider.Container.RegisterInstance(typeof(IUserService), mockUserService.Object); mockServiceProvider.Container.RegisterInstance(typeof(ITaskSubitemService), mockTaskSubitemService.Object); mockServiceProvider.Container.RegisterInstance(typeof(ITaskItemService), mockTaskItemService.Object); var controller = new TaskSubitemController(mockServiceProvider); var result = (await controller.Details("1", "1")) as ViewResult; Assert.AreEqual("1", ((TaskSubitemModel)result.Model).Id); }