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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }