public void AssignTicketCommand_WithoutAnyInput_ShouldThrowValidationException() { var command = new AssignTicketCommand(); FluentActions.Invoking(() => SendAsync(command)).Should().Throw <ValidationException>(); }
public async Task AssignTicketCommand_WithShouldRemovePreviousUsersFlagSetToFalse_ShouldAddNewUserToConversationUsersAndNotDisableAnyPreviousUser() { var createdTicketId = await SeedSampleTicket(false); var operator2UserId = await RunAsOperator2UserAsync(); var command = new AssignTicketCommand { ConversationId = createdTicketId, UserId = operator2UserId, ShouldRemovePreviousUsers = false }; await SendAsync(command); var context = GetContext(); var conversationUsers = await context.ConversationUsers.Where(x => x.ConversationId == createdTicketId).ToListAsync(); conversationUsers.Count.Should().Be(3); conversationUsers.Count(x => x.IsDisabled).Should().Be(0); conversationUsers.Any(x => x.UserId == operator2UserId).Should().BeTrue(); }
public async Task AssignTicketCommand_WithShouldRemovePreviousUsersFlag_ShouldAddNewUserToConversationUsersAndSetIsDisabledForPreviousUsers() { var createdTicketId = await SeedSampleTicket(false); var operator2UserId = await RunAsOperator2UserAsync(); var command = new AssignTicketCommand { ConversationId = createdTicketId, UserId = operator2UserId, ShouldRemovePreviousUsers = true }; await SendAsync(command); var context = GetContext(); var conversationUsers = await context.ConversationUsers.Where(x => x.ConversationId == createdTicketId).ToListAsync(); conversationUsers.Count.Should().Be(3); conversationUsers.Count(x => x.IsDisabled).Should().Be(2); conversationUsers.SingleOrDefault(x => x.IsDisabled == false).UserId.Should().Be(operator2UserId); }
public async Task <ActionResult> Assign(Guid id, AssignTicketCommand command) { if (id != command.ConversationId) { return(BadRequest()); } await Mediator.Send(command); return(NoContent()); }
public async Task AssignTicketCommand_WithoutUserId_ShouldThrowValidationException() { var createdTicketId = await SeedSampleTicket(); var command = new AssignTicketCommand { ShouldRemovePreviousUsers = false, ConversationId = createdTicketId }; FluentActions.Invoking(() => SendAsync(command)).Should().Throw <ValidationException>(); }
public async Task AssignTicketCommand_WithInvalidConversationId_ShouldThrowNotFoundException() { var defaultUserId = await RunAsDefaultUserAsync(); var invalidConversationId = new Guid("ef1dc766-98f5-424f-ad4c-0fb42a690140"); var command = new AssignTicketCommand { ConversationId = invalidConversationId, UserId = defaultUserId, ShouldRemovePreviousUsers = false }; FluentActions.Invoking(() => SendAsync(command)).Should().Throw <NotFoundException>(); }
public async Task AssignTicketCommand_ForClosedTicket_ShouldThrowException() { var defaultUserId = await RunAsDefaultUserAsync(); var createdTicketId = await SeedSampleTicket(true); var command = new AssignTicketCommand { ConversationId = createdTicketId, UserId = defaultUserId, ShouldRemovePreviousUsers = false }; FluentActions.Invoking(() => SendAsync(command)).Should().Throw <Exception>().Which.Message.Should().Be("You can't assign new user to closed ticket"); }
public async Task AssignTicketCommand_WithDifferentUserThanAdmin_ShouldThrowForbiddenAccessException() { var defaultUserId = await RunAsDefaultUserAsync(); var createdTicketId = await SeedSampleTicket(); await RunAsAdministratorAsync(); var command = new AssignTicketCommand { ConversationId = createdTicketId, UserId = defaultUserId, ShouldRemovePreviousUsers = false }; FluentActions.Invoking(() => SendAsync(command)).Should().Throw <ForbiddenAccessException>(); }