public async Task GivenId_WhenGet_ThenQuerySent_AndResponseReturned() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new PrintersController( new PrinterIdValidator(), mockMediator.Object); var id = ObjectId.GenerateNewId().ToString(); var response = new GetPrinterByIdQueryResponse { Printer = new Dto.Response.Printer { Id = "HelloWorld" } }; mockMediator.Setup(x => x.Send( It.IsAny <GetPrinterByIdQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(response); var cancellationTokenSource = new CancellationTokenSource(); // Act var result = await sut.Get( id, cancellationTokenSource.Token); // Assert mockMediator.Verify(x => x.Send( It.Is <GetPrinterByIdQuery>(y => y.Id == id), It.Is <CancellationToken>(y => y == cancellationTokenSource.Token)), Times.Once); Assert.Equal(response.Printer.Id, result.Value.Id); }
public async Task GivenInvalidId_WhenGet_ThenBadRequestResponseReturned() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new PrintersController( new PrinterIdValidator(), mockMediator.Object); var id = "pop"; var cancellationTokenSource = new CancellationTokenSource(); // Act var result = await sut.Get( id, cancellationTokenSource.Token); // Assert Assert.False(result.Success); Assert.Equal(HttpStatusCode.BadRequest, result.Error.HttpStatusCode); }
public async Task GivenNoParams_WhenGet_ThenQuerySent_AndResponseReturned() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new PrintersController( new PrinterIdValidator(), mockMediator.Object); var response = new GetAllPrintersQueryResponse { Printers = new List <Dto.Response.Printer> { new Dto.Response.Printer { Id = "Hello" }, new Dto.Response.Printer { Id = "World" } } }; mockMediator.Setup(x => x.Send( It.IsAny <GetAllPrintersQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(response); var cancellationTokenSource = new CancellationTokenSource(); // Act var result = await sut.Get(cancellationTokenSource.Token); // Assert mockMediator.Verify(x => x.Send( It.IsAny <GetAllPrintersQuery>(), It.Is <CancellationToken>(y => y == cancellationTokenSource.Token)), Times.Once); Assert.Equal(response.Printers.Count, result.Value.Count); Assert.Equal(response.Printers[0].Id, result.Value[0].Id); Assert.Equal(response.Printers[1].Id, result.Value[1].Id); }