public void ChangeTicketState_Ok() { // Arrange var user = new Core.Domains.Ticket.User("17A3A82B-2907-43F6-9D25-7888962D432D", "username"); var title = "Unit test Ticket"; var description = "A ticket to verify our business logic"; var ticketType = TicketType.Bug; var ticketPrio = TicketPriority.Low; // Act var ticket = Core.Domains.Ticket.Ticket.CreateNewTicket(title, description, ticketType, ticketPrio, user); ticket.ChangeTicketState(TicketState.InProgress); // Assert Assert.AreEqual(title, ticket.Title); Assert.AreEqual(description, ticket.Description); Assert.AreEqual(ticketType, ticket.TicketType); Assert.AreEqual(ticketPrio, ticket.TicketPriority); Assert.AreEqual(user, ticket.User); Assert.IsNotNull(ticket.TicketState); Assert.AreEqual(TicketState.InProgress, ticket.TicketState.State); Assert.AreEqual(2, ticket.DomainEvents.Count); Assert.AreEqual(typeof(TicketRegisteredDomainEvent), ticket.DomainEvents.First().GetType()); Assert.IsTrue(ticket.DomainEvents.Any(evt => evt.GetType() == typeof(TicketStateChangedDomainEvent))); }
public async Task <RegisterTicketMediatorCommandResponse> Handle(RegisterTicketMediatorCommand request, CancellationToken cancellationToken) { var domainTicketUser = new Core.Domains.Ticket.User(request.UserId, request.UserName); var domainTicket = Core.Domains.Ticket.Ticket.CreateNewTicket(request.Title, request.Description, request.TicketType, request.TicketPriority, domainTicketUser); var id = await _repository.SaveTicketAsync(domainTicket, cancellationToken); return(RegisterTicketMediatorCommandResponse.CreateResponse(id.ToString())); }