public async Task Repository_AddTask_Test()
        {
            //arrange
            MapperHelper.InitializeMapper();
            var vm = new TaskAddEditViewModel()
            {
                Name       = "test task",
                Comment    = "test comment",
                PriorityId = Priority.High
            };
            var user = new ProjectUser
            {
                Id = "qwer"
            };
            var contextMock = new Mock <IProjectContext>();
            var dbsetMock   = CreateDbSetMock(new List <TaskModel>());

            contextMock.Setup(x => x.Tasks).Returns(dbsetMock.Object);
            var userServiceMock = new Mock <IUserService>();

            userServiceMock.Setup(x => x.GetUserById(It.IsAny <string>()))
            .Returns(Task.FromResult(user));
            var repository = new TaskRepository(contextMock.Object, userServiceMock.Object);

            //act
            var result = await repository.AddEditTask(vm);

            //assert
            Assert.IsTrue(result);
            Assert.AreEqual(1, contextMock.Object.Tasks.Count(), "Object wasn't added to DbSet");
            Assert.IsNotNull(contextMock.Object.Tasks.SingleOrDefault(), "Object was added to DbSet more than one time");
        }
        public async Task Repository_EditTask_Test()
        {
            //arrange
            MapperHelper.InitializeMapper();
            var vm = new TaskAddEditViewModel
            {
                TaskId     = 3,
                Name       = "Edited name",
                Comment    = "edited comment",
                DueDate    = DateTime.UtcNow.AddDays(2),
                PriorityId = Priority.Medium
            };
            var task = new TaskModel
            {
                TaskId     = 3,
                Name       = "not edited name",
                Comment    = "not edited comment",
                PriorityId = Priority.High,
                DueDate    = DateTime.UtcNow
            };
            var user = new ProjectUser
            {
                Id = "qwer"
            };
            var sourceList = new List <TaskModel>()
            {
                task
            };
            var contextMock = new Mock <IProjectContext>();

            contextMock.Setup(x => x.Tasks).Returns(CreateDbSetMock(sourceList).Object);
            var userServiceMock = new Mock <IUserService>();

            userServiceMock.Setup(x => x.GetUserById(It.IsAny <string>()))
            .Returns(Task.FromResult(user));
            var repository = new TaskRepository(contextMock.Object, userServiceMock.Object);

            //act
            var result = await repository.AddEditTask(vm);

            //assert
            Assert.IsTrue(result);
            var editedObj = contextMock.Object.Tasks.FirstOrDefault(x => x.TaskId == vm.TaskId);

            Assert.AreEqual(vm.Name, editedObj.Name);
            Assert.AreEqual(vm.Comment, editedObj.Comment);
            Assert.AreEqual(vm.DueDate, editedObj.DueDate);
            Assert.AreEqual(vm.PriorityId, editedObj.PriorityId);
        }