public void ShouldUpdateToDoItemWithoutState() { var updateToDoItemInput = new UpdateToDoItemInput { AssignedUserId = Guid.NewGuid().ToString(), State = null }; var updatedToDoItem = this.CreateToDoItem(); var assignedUser = this.CreateUser(); using (this.Repository.Record()) { Expect.Call(() => this.Logger.Info(Arg.Text.Contains("Updating ToDoItem for input:"))); Expect.Call(this.DbContextScopeFactory.Create()); Expect.Call(this.ToDoItemRepository.Get(0)).Constraints(Is.Equal(updateToDoItemInput.ToDoItemId)).Return(updatedToDoItem); Expect.Call(this.UserRepository.Get(string.Empty)).Constraints(Is.Equal(updateToDoItemInput.AssignedUserId)).Return(assignedUser); Expect.Call(this.Mapper.Map <ToDoItemState>(null)).Constraints(Is.Anything()).Repeat.Never(); Expect.Call(this.ToDoItemRepository.Update(null)).Constraints(Is.Equal(updatedToDoItem)).Return(updatedToDoItem); Expect.Call(() => this.Logger.Info(Arg.Text.Contains("Updated ToDoItem for input:"))); } using (this.Repository.Playback()) { var toDoItemApplicationService = new ToDoItemApplicationService( this.ToDoItemRepository, this.UserRepository, this.DbContextScopeFactory, this.Mapper, this.Logger); toDoItemApplicationService.UpdateToDoItem(updateToDoItemInput); Assert.AreEqual(assignedUser, updatedToDoItem.AssignedUser); } }
public void ShouldUpdateToDoItemWithoutUser() { var updateToDoItemInput = new UpdateToDoItemInput { AssignedUserId = null, State = (Perfectial.Application.Model.ToDoItemState) this.enumGenerator.Next(0, Enum.GetValues(typeof(Perfectial.Application.Model.ToDoItemState)).Length) }; var updatedToDoItem = this.CreateToDoItem(); var state = (ToDoItemState)this.enumGenerator.Next(0, Enum.GetValues(typeof(ToDoItemState)).Length); using (this.Repository.Record()) { Expect.Call(() => this.Logger.Info(Arg.Text.Contains("Updating ToDoItem for input:"))); Expect.Call(this.DbContextScopeFactory.Create()); Expect.Call(this.ToDoItemRepository.Get(0)).Constraints(Is.Equal(updateToDoItemInput.ToDoItemId)).Return(updatedToDoItem); Expect.Call(this.UserRepository.Get(string.Empty)).Constraints(Is.Anything()).Repeat.Never(); Expect.Call(this.Mapper.Map <ToDoItemState>(null)).Constraints(Is.Equal(updateToDoItemInput.State.Value)).Return(state); Expect.Call(this.ToDoItemRepository.Update(null)).Constraints(Is.Equal(updatedToDoItem)).Return(updatedToDoItem); Expect.Call(() => this.Logger.Info(Arg.Text.Contains("Updated ToDoItem for input:"))); } using (this.Repository.Playback()) { var toDoItemApplicationService = new ToDoItemApplicationService( this.ToDoItemRepository, this.UserRepository, this.DbContextScopeFactory, this.Mapper, this.Logger); toDoItemApplicationService.UpdateToDoItem(updateToDoItemInput); Assert.AreEqual(state, updatedToDoItem.State); } }
public async Task <UpdateToDoItemPayload> UpdateToDoItemAsync( UpdateToDoItemInput input, [ScopedService] ApplicationDbContext context, CancellationToken cancellationToken) { var item = await context.ToDoItems.FindAsync(new object[] { input.Id }, cancellationToken); item.Content = input.Content.HasValue ? input.Content.Value : item.Content; item.Status = input.Status.HasValue ? (input.Status.Value ?? item.Status) : item.Status; await context.SaveChangesAsync(cancellationToken); return(new UpdateToDoItemPayload(item)); }
public void UpdateToDoItem(UpdateToDoItemInput input) { this.Logger.Info($"Updating ToDoItem for input: {input}"); using (var dbContextScope = this.DbContextScopeFactory.Create()) { var toDoItem = this.toDoItemRepository.Get(input.ToDoItemId); if (input.State.HasValue) { toDoItem.State = this.Mapper.Map <ToDoItemState>(input.State.Value); } if (!string.IsNullOrEmpty(input.AssignedUserId)) { toDoItem.AssignedUser = this.userRepository.Get(input.AssignedUserId); } this.toDoItemRepository.Update(toDoItem); dbContextScope.SaveChanges(); } this.Logger.Info($"Updated ToDoItem for input: {input}"); }