public void post_returns_ticket_etag_on_success( TicketModel ticket, TicketDetails ticketDetails, [Frozen]Mock<IQuery<Guid, TicketDetails>> ticketQuery, [Frozen]Mock<UrlHelper> url, TicketsController sut) { var createdUri = "http://localhost:8051/api/tickets/123"; url.Setup(u => u.Link(It.IsAny<string>(), It.IsAny<object>())) .Returns(createdUri); ticketQuery.Setup(q => q.Execute(It.IsAny<Envelope<Guid>>())).Returns(ticketDetails); var actual = sut.Post(ticket); actual.Should().BeOfType<CreatedResultWithETag<TicketResponseModel>>() .Which.ETagValue.Should().Be(ticketDetails.Version.ToString()); }
public void post_returns_created_ticket_on_success( TicketModel ticket, TicketDetails ticketDetails, [Frozen]Mock<IQuery<Guid, TicketDetails>> ticketQuery, [Frozen]Mock<UrlHelper> url, TicketsController sut) { var createdUri = "http://localhost:8051/api/tickets/123"; url.Setup(u => u.Link(It.IsAny<string>(), It.IsAny<object>())) .Returns(createdUri); ticketQuery.Setup(q => q.Execute(It.IsAny<Envelope<Guid>>())).Returns(ticketDetails); var actual = sut.Post(ticket); actual.Should().BeOfType<CreatedResultWithETag<TicketResponseModel>>() .Which.Content.ShouldBeEquivalentTo(ticketDetails, options => options.ExcludingMissingMembers()); }
public void post_returns_400_bad_request_on_validation_error( TicketModel ticket, ValidationException exception, [Frozen]Mock<ICommand<Ticket>> addCmd, TicketsController sut) { addCmd.Setup(cmd => cmd.Execute(It.IsAny<Envelope<Ticket>>())).Throws(exception); var actual = sut.Post(ticket); actual.Should().BeOfType<BadRequestErrorMessageResult>(); }
public void post_returns_403_unauthorized_if_not_authorized( TicketModel ticket, [Frozen]Mock<ICommand<Ticket>> cmd, TicketsController sut) { cmd.Setup(c => c.Execute(It.IsAny<Envelope<Ticket>>())).Throws<UnauthorizedAccessException>(); var actual = sut.Post(ticket); actual.Should().BeOfType<UnauthorizedResult>("because user name query returned nothing"); }
public void post_returns_201_created_with_correct_location_on_success( TicketModel ticket, [Frozen]Mock<UrlHelper> url, TicketsController sut) { var createdUri = "http://localhost:8051/api/tickets/123"; url.Setup(u => u.Link(It.IsAny<string>(), It.IsAny<object>())) .Returns(createdUri); var actual = sut.Post(ticket); actual.Should().BeOfType<CreatedResultWithETag<TicketResponseModel>>() .Which.Location.OriginalString.Should().Be(createdUri); }