public void Create_returns_null_ticket_instance_if_validation_fails(CreateTicketRequest request,
                                                                            [Frozen] ICreatesValidators <CreateTicketRequest> validatorFactory,
                                                                            IValidator validator,
                                                                            [Frozen] ICreatesTicket ticketFactory,
                                                                            [Frozen] ICreatesCreateTicketResponse responseFactory,
                                                                            Ticket ticket,
                                                                            CreateTicketRequestHandler sut)
        {
            // Arrange
            Mock.Get(ticketFactory)
            .Setup(x => x.CreateTicket(It.IsAny <CreateTicketRequest>()))
            .Returns(ticket);
            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));
            Mock.Get(responseFactory)
            .Setup(x => x.GetResponse(It.IsAny <IValidationResult>()))
            .Returns((IValidationResult r) => new CreateTicketResponse(r, Mock.Of <IValidationResultInterpreter>()));
            Mock.Get(responseFactory)
            .Setup(x => x.GetResponse(It.IsAny <IValidationResult>(), It.IsAny <Ticket>()))
            .Returns((IValidationResult r, Ticket t) => new CreateTicketResponse(r, Mock.Of <IValidationResultInterpreter>(), t));

            // Act
            var result = sut.Create(request);

            // Assert
            Assert.IsNull(result.Ticket);
        }
Exemple #2
0
        public CreateTicketRequestHandler(ICreatesTicket ticketFactory,
                                          ICreatesValidators <CreateTicketRequest> validatorFactory,
                                          ICreatesCreateTicketResponse responseCreator)
        {
            if (responseCreator == null)
            {
                throw new ArgumentNullException(nameof(responseCreator));
            }
            if (validatorFactory == null)
            {
                throw new ArgumentNullException(nameof(validatorFactory));
            }
            if (ticketFactory == null)
            {
                throw new ArgumentNullException(nameof(ticketFactory));
            }

            this.ticketFactory    = ticketFactory;
            this.validatorFactory = validatorFactory;
            this.responseCreator  = responseCreator;
        }
        public void Create_returns_created_ticket_in_response(CreateTicketRequest request,
                                                              [Frozen, AlwaysPasses] ICreatesValidators <CreateTicketRequest> validatorFactory,
                                                              [Frozen] ICreatesTicket ticketFactory,
                                                              [Frozen] ICreatesCreateTicketResponse responseFactory,
                                                              Ticket ticket,
                                                              CreateTicketRequestHandler sut)
        {
            // Arrange
            Mock.Get(ticketFactory)
            .Setup(x => x.CreateTicket(It.IsAny <CreateTicketRequest>()))
            .Returns(ticket);
            Mock.Get(responseFactory)
            .Setup(x => x.GetResponse(It.IsAny <IValidationResult>()))
            .Returns((IValidationResult r) => new CreateTicketResponse(r, Mock.Of <IValidationResultInterpreter>()));
            Mock.Get(responseFactory)
            .Setup(x => x.GetResponse(It.IsAny <IValidationResult>(), It.IsAny <Ticket>()))
            .Returns((IValidationResult r, Ticket t) => new CreateTicketResponse(r, Mock.Of <IValidationResultInterpreter>(), t));

            // Act
            var result = sut.Create(request);

            // Assert
            Assert.AreSame(ticket, result.Ticket);
        }