public EditTicketRequestHandler(IEntityData ticketRepo, IGetsTransaction transactionFactory, ICreatesValidators <EditTicketRequest> validatorFactory, ICreatesEditTicketResponse responseCreator, IEditsTicket editor, ILog logger) { if (editor == null) { throw new ArgumentNullException(nameof(editor)); } if (responseCreator == null) { throw new ArgumentNullException(nameof(responseCreator)); } if (validatorFactory == null) { throw new ArgumentNullException(nameof(validatorFactory)); } if (transactionFactory == null) { throw new ArgumentNullException(nameof(transactionFactory)); } if (ticketRepo == null) { throw new ArgumentNullException(nameof(ticketRepo)); } this.ticketRepo = ticketRepo; this.transactionFactory = transactionFactory; this.validatorFactory = validatorFactory; this.responseCreator = responseCreator; this.editor = editor; this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public void Edit_returns_edited_ticket_in_response(EditTicketRequest request, [Frozen, AlwaysPasses] ICreatesValidators <EditTicketRequest> validatorFactory, [Frozen, CreatesTransaction] IGetsTransaction transactionCreator, [InMemory, Frozen] IEntityData data, [HasIdentity] Ticket ticket, [Frozen] ICreatesEditTicketResponse editResponseCreator, EditTicketRequestHandler sut) { // Arrange data.Add(ticket); request.Identity = ticket.GetIdentity(); // Act sut.Edit(request); // Assert Mock.Get(editResponseCreator) .Verify(x => x.GetResponse(It.IsAny <IValidationResult>(), ticket), Times.Once); }
public void Edit_returns_response_with_null_ticket_when_validation_fails(EditTicketRequest request, [Frozen] ICreatesValidators <EditTicketRequest> validatorFactory, IValidator validator, [Frozen] ICreatesEditTicketResponse editResponseCreator, EditTicketRequestHandler sut) { // Arrange Mock.Get(validatorFactory) .Setup(x => x.GetValidator()) .Returns(validator); Mock.Get(validator) .Setup(x => x.Validate(request)) .Returns(Mock.Of <IValidationResult>(x => x.IsSuccess == false)); // Act sut.Edit(request); // Assert Mock.Get(editResponseCreator) .Verify(x => x.GetResponse(It.IsAny <IValidationResult>(), null), Times.Once); }