public void Test_For_AddTask() { // Arrange var userGuid = Guid.NewGuid(); var testTaskVM = new Models.ViewModels.Task() { TaskName = "TestTask1", Priority = 20, ProjectName = "TestProject100", OwnerFullName = "First Last", StartDate = DateTime.Today }; var testTaskDM = new Models.DataModels.Task() { TaskName = "TestTask1", Priority = 20, ProjectId = 100, TaskOwnerId = userGuid, StartDate = DateTime.Today, Project = new Models.DataModels.Project() { ProjectId = 100, ProjectName = "TestProject100", Priority = 1, ManagerId = userGuid }, TaskOwner = new Models.DataModels.User() { Id = userGuid, UserId = "TestUser1", FirstName = "First", LastName = "Last" } }; mockTaskRepo.Setup(repo => repo.Create(It.IsAny <Models.DataModels.Task>())).Returns(testTaskDM); // Act var actualTask = tasksLogicTest.CreateTask(testTaskVM); // Assert Assert.NotNull(actualTask); Assert.Equal(testTaskVM.ProjectName, actualTask.ProjectName); Assert.Equal(testTaskVM.OwnerFullName, actualTask.OwnerFullName); }
public static Models.ViewModels.Task AsViewModel(this Models.DataModels.Task taskData) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.DataModels.Task, Models.ViewModels.Task>() .ForMember(vm => vm.OwnerFullName, dm => dm.MapFrom(m => m.TaskOwner != null ? m.TaskOwner.FirstName + (!string.IsNullOrEmpty(m.TaskOwner.LastName) ? $" {m.TaskOwner.LastName}" : string.Empty) : string.Empty)) .ForMember(vm => vm.ProjectName, dm => dm.MapFrom(m => m.Project != null ? m.Project.ProjectName : string.Empty)) .ForMember(vm => vm.ParentTaskName, dm => dm.MapFrom(m => m.ParentTask != null ? m.ParentTask.TaskName : string.Empty)) .ForMember(vm => vm.IsParent, dm => dm.MapFrom(m => m.ParentTask == null ? true: false)) .ForMember(vm => vm.IsActive, dm => dm.MapFrom(m => !(m.EndDate.HasValue && m.EndDate.Value.CompareTo(System.DateTime.Now) <= 0))) .ReverseMap(); }); return(config.CreateMapper().Map <Models.DataModels.Task, Models.ViewModels.Task>(taskData)); }
public void Test_For_DeleteTask(int testTaskIdForDelete, bool expectedResult) { // Arrange var userGuid = Guid.NewGuid(); var testTaskVM = new Models.ViewModels.Task() { TaskId = testTaskIdForDelete, TaskName = "TestTask1", Priority = 20, ProjectName = "TestProject100", OwnerFullName = "First Last", StartDate = DateTime.Today }; Models.DataModels.Task testTaskForDelete; if (expectedResult) { testTaskForDelete = new Models.DataModels.Task() { TaskId = testTaskIdForDelete, TaskName = "TestTask1", Priority = 20, ProjectId = 100, TaskOwnerId = userGuid, StartDate = DateTime.Today, Project = new Models.DataModels.Project() { ProjectId = 100, ProjectName = "TestProject100", Priority = 1, ManagerId = userGuid }, TaskOwner = new Models.DataModels.User() { Id = userGuid, UserId = "TestUser1", FirstName = "First", LastName = "Last" } }; } else { testTaskForDelete = null; } mockTaskRepo.Setup(repo => repo.GetById(testTaskIdForDelete)).Returns(testTaskForDelete); mockTaskRepo.Setup(repo => repo.Delete(It.IsAny <Models.DataModels.Task>())).Returns(expectedResult); // Act var actualResult = tasksLogicTest.DeleteTask(testTaskIdForDelete); // Assert Assert.Equal(expectedResult, actualResult); }
public void Test_For_Get_Active_Tasks() { // Arrange var testTasksList = new Models.DataModels.Task[] { new Models.DataModels.Task() { TaskName = "TestTask1", Priority = 20, ProjectId = 100, TaskOwnerId = Guid.NewGuid(), StartDate = DateTime.Today.AddDays(-5), ParentTaskId = null, EndDate = DateTime.Today }, new Models.DataModels.Task() { TaskName = "TestTask2", Priority = 20, ProjectId = 200, TaskOwnerId = Guid.NewGuid(), StartDate = DateTime.Today.AddDays(-5), ParentTaskId = 100, EndDate = DateTime.Today.AddDays(-1) }, new Models.DataModels.Task() { TaskName = "TestTask3", Priority = 20, ProjectId = 130, TaskOwnerId = Guid.NewGuid(), StartDate = DateTime.Today, ParentTaskId = null }, new Models.DataModels.Task() { TaskName = "TestTask4", Priority = 20, ProjectId = 400, TaskOwnerId = Guid.NewGuid(), StartDate = DateTime.Today, ParentTaskId = 140 }, new Models.DataModels.Task() { TaskName = "TestTask5", Priority = 20, ProjectId = 160, TaskOwnerId = Guid.NewGuid(), StartDate = DateTime.Today, ParentTaskId = 100 }, new Models.DataModels.Task() { TaskName = "TestTask6", Priority = 20, ProjectId = 140, TaskOwnerId = Guid.NewGuid(), StartDate = DateTime.Today, ParentTaskId = null }, }; mockTaskRepo.Setup(repo => repo.GetAll()).Returns(testTasksList); var expectedCount = testTasksList.AsViewModel().Count(t => t.IsActive); // Act var actualResult = tasksLogicTest.GetTasks(true); // Assert Assert.NotNull(actualResult); Assert.Equal(expectedCount, actualResult.Count()); }
public void Test_For_EditTask(int testTaskIdForEdit, bool expectedExistsResult, bool expectedUpdateResult) { // Arrange var userGuid = Guid.NewGuid(); Models.DataModels.Task testTaskForEdit; if (expectedExistsResult || expectedUpdateResult) { testTaskForEdit = new Models.DataModels.Task() { TaskId = testTaskIdForEdit, TaskName = "TestTask" + testTaskIdForEdit, Priority = 20, ProjectId = 100, TaskOwnerId = userGuid, StartDate = DateTime.Today, Project = new Models.DataModels.Project() { ProjectId = 100, ProjectName = "TestProject-XY", Priority = 1, ManagerId = userGuid }, TaskOwner = new Models.DataModels.User() { Id = userGuid, UserId = "TestUser1", FirstName = "First", LastName = "Last" } }; } else { testTaskForEdit = null; } mockTaskRepo.Setup(repo => repo.GetById(testTaskIdForEdit)).Returns(testTaskForEdit); mockTaskRepo.Setup(repo => repo.Update(It.IsAny <Models.DataModels.Task>())).Returns(expectedUpdateResult); // Act var actualResult = tasksLogicTest.UpdateTask(testTaskIdForEdit, testTaskForEdit.AsViewModel()); // Assert Assert.Equal(expectedUpdateResult, actualResult); }
public static Models.DataModels.Task AsDataModel(this Models.ViewModels.Task taskData, Models.DataModels.Task dataModel = null) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.ViewModels.Task, Models.DataModels.Task>().ReverseMap(); }); if (dataModel == null) { return(config.CreateMapper().Map <Models.ViewModels.Task, Models.DataModels.Task>(taskData)); } else { return(config.CreateMapper().Map(taskData, dataModel)); } }
public void Test_For_Converting_AsDataModel_List() { // Arrange var tasksList = new Models.ViewModels.Task[] { new Models.ViewModels.Task() { ProjectId = 1, ProjectName = "TestProject-1", TaskOwnerId = Guid.NewGuid(), Priority = 10, TaskId = 10, TaskName = "TestTask1" }, new Models.ViewModels.Task() { ProjectId = 2, ProjectName = "TestProject-2", TaskOwnerId = Guid.NewGuid(), Priority = 5, TaskId = 11, TaskName = "TestTask2" }, new Models.ViewModels.Task() { ProjectId = 3, ProjectName = "TestProject-3", TaskOwnerId = Guid.NewGuid(), Priority = 15, TaskId = 9, TaskName = "TestTask3" }, new Models.ViewModels.Task() { ProjectId = 4, ProjectName = "TestProject-4", TaskOwnerId = Guid.NewGuid(), Priority = 20, TaskId = 7, TaskName = "TestTask4" }, new Models.ViewModels.Task() { ProjectId = 5, ProjectName = "TestProject-5", TaskOwnerId = Guid.NewGuid(), Priority = 30, TaskId = 5, TaskName = "TestTask5", ParentTaskName = "TestParentTask1", ParentTaskId = 200 }, new Models.ViewModels.Task() { ProjectId = 6, ProjectName = "TestProject-5", TaskOwnerId = Guid.NewGuid(), Priority = 30, TaskId = 5, TaskName = "TestTask6", ParentTaskName = "TestParentTask1", ParentTaskId = 200 }, new Models.ViewModels.Task() { ProjectId = 7, ProjectName = "TestProject-5", TaskOwnerId = Guid.NewGuid(), Priority = 30, TaskId = 5, TaskName = "TestTask7", ParentTaskName = "TestParentTask2", ParentTaskId = 202 }, }.AsEnumerable(); var testDataModelList = new Models.DataModels.Task[] { new Models.DataModels.Task() { ProjectId = 1, Project = new Models.DataModels.Project() { ProjectName = "test-1", ProjectId = 1 }, TaskOwnerId = Guid.NewGuid(), Priority = 10, TaskId = 10, TaskName = "As-Is-Task1" }, new Models.DataModels.Task() { ProjectId = 2, Project = new Models.DataModels.Project() { ProjectName = "test-2", ProjectId = 2 }, TaskOwnerId = Guid.NewGuid(), Priority = 5, TaskId = 11, TaskName = "As-Is-Task2" }, new Models.DataModels.Task() { ProjectId = 3, Project = new Models.DataModels.Project() { ProjectName = "test-3", ProjectId = 3 }, TaskOwnerId = Guid.NewGuid(), Priority = 15, TaskId = 9, TaskName = "As-Is-Task3" }, new Models.DataModels.Task() { ProjectId = 4, Project = new Models.DataModels.Project() { ProjectName = "test-4", ProjectId = 4 }, TaskOwnerId = Guid.NewGuid(), Priority = 20, TaskId = 7, TaskName = "As-Is-Task4" }, new Models.DataModels.Task() { ProjectId = 5, Project = new Models.DataModels.Project() { ProjectName = "test-5", ProjectId = 5 }, TaskOwnerId = Guid.NewGuid(), Priority = 30, TaskId = 5, TaskName = "As-Is-Task5", }, new Models.DataModels.Task() { ProjectId = 6, Project = new Models.DataModels.Project() { ProjectName = "test-6", ProjectId = 6 }, TaskOwnerId = Guid.NewGuid(), Priority = 30, TaskId = 5, TaskName = "As-Is-Task6", }, new Models.DataModels.Task() { ProjectId = 7, Project = new Models.DataModels.Project() { ProjectName = "test-7", ProjectId = 7 }, TaskOwnerId = Guid.NewGuid(), Priority = 30, TaskId = 5, TaskName = "As-Is-Task7", }, }.AsEnumerable(); // Act var actualDataModelResult = tasksList.AsDataModel(testDataModelList); // Assert Assert.Equal(testDataModelList.Select(t => t.ProjectId), actualDataModelResult.Select(t => t.ProjectId)); Assert.Equal(tasksList.Select(t => t.TaskName), actualDataModelResult.Select(t => t.TaskName)); }