public async Task GetAllByRouteIdAsync_GivenValidRouteId_Successful()
        {
            // Arrange
            Seed(TripFlipDbContext, RouteEntityToSeed);
            Seed(TripFlipDbContext, TaskListEntitiesToSeed);

            CurrentUserService = CreateCurrentUserService(ValidUser.Id, ValidUser.Email);

            var taskListService = new TaskListService(TripFlipDbContext,
                                                      Mapper, CurrentUserService);

            var    paginationDto = GetPaginationDto();
            string searchString  = null;
            var    comparer      = new TaskListDtoComparer();

            // Act
            var result = await taskListService.GetAllByRouteIdAsync(1,
                                                                    searchString, paginationDto);

            var returnedTaskListDtos = result.Items.ToList();

            var expectedTaskListCount = _expectedGotAllTaskListDtos.Count();

            // Assert
            Assert.AreEqual(expectedTaskListCount, result.TotalCount);

            for (var i = 0; i < expectedTaskListCount; i++)
            {
                Assert.AreEqual(0,
                                comparer.Compare(returnedTaskListDtos[i], _expectedGotAllTaskListDtos[i]));
            }
        }
        public async Task CreateAsync_ValidData_Successful()
        {
            // Arrange.
            Seed(TripFlipDbContext, ValidUser);
            Seed(TripFlipDbContext, TripEntityToSeed);
            Seed(TripFlipDbContext, RouteEntityToSeed);
            Seed(TripFlipDbContext, TripSubscriberEntitiesToSeed);
            Seed(TripFlipDbContext, RouteSubscriberEntitiesToSeed);
            Seed(TripFlipDbContext, RouteRoleEntitiesToSeed);
            Seed(TripFlipDbContext, RouteSubscriberAdminRoleEntityToSeed);

            var comparer = new TaskListDtoComparer();

            CurrentUserService = CreateCurrentUserService(ValidUser.Id, ValidUser.Email);

            var taskListService = new TaskListService(TripFlipDbContext, Mapper,
                                                      CurrentUserService);

            var taskListEntity      = TaskListEntityToSeed;
            var expectedTaskListDto = Mapper.Map <TaskListDto>(taskListEntity);

            var createTaskListDto = Get_CreateTaskListDto(
                routeId: taskListEntity.Id,
                title: taskListEntity.Title);

            // Act.
            var resultTaskListDto = await taskListService.CreateAsync(createTaskListDto);

            // Arrange.
            Assert.AreEqual(0, comparer.Compare(expectedTaskListDto, resultTaskListDto));
        }
        public async Task UpdateAsync_ValidData_Successful()
        {
            // Arrange.
            Seed(TripFlipDbContext, ValidUser);
            Seed(TripFlipDbContext, TripEntityToSeed);
            Seed(TripFlipDbContext, RouteEntityToSeed);
            Seed(TripFlipDbContext, TaskListEntitiesToSeed);
            Seed(TripFlipDbContext, TripSubscriberEntitiesToSeed);
            Seed(TripFlipDbContext, RouteSubscriberEntitiesToSeed);
            Seed(TripFlipDbContext, RouteRoleEntitiesToSeed);
            Seed(TripFlipDbContext, RouteSubscriberEditorRoleEntityToSeed);

            CurrentUserService = CreateCurrentUserService(ValidUser.Id,
                                                          ValidUser.Email);

            var updateTaskListDto = GetUpdateTaskListDto();
            var taskListService   = new TaskListService(TripFlipDbContext, Mapper, CurrentUserService);

            // Act.
            var resultTaskListDto =
                await taskListService.UpdateAsync(updateTaskListDto);

            var comparer = new TaskListDtoComparer();

            // Assert.
            Assert.AreEqual(0,
                            comparer.Compare(resultTaskListDto, _expectedReturnTaskListDto));
        }
        public async Task GetByIdAsync_ExistentTaskListId_Successful()
        {
            // Arrange.
            var taskListEntityToSeed = TaskListEntityToSeed;

            Seed(TripFlipDbContext, taskListEntityToSeed);

            var existentTaskListId = taskListEntityToSeed.Id;
            var taskListService    = new TaskListService(TripFlipDbContext, Mapper,
                                                         CurrentUserService);

            var expectedTaskListDto = Mapper.Map <TaskListDto>(taskListEntityToSeed);
            var taskListDtoComparer = new TaskListDtoComparer();

            // Act.
            var resultTaskListDto = await taskListService.GetByIdAsync(existentTaskListId);

            // Act + Assert.
            Assert.AreEqual(0,
                            taskListDtoComparer.Compare(expectedTaskListDto, resultTaskListDto));
        }