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); }
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); }