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);
        }
Exemple #2
0
        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);
        }
Exemple #6
0
        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));
        }