public async Task GivenId_AndPrinter_WhenUpdate_ThenQuerySent_AndResponseReturned() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new PrintersController( new PrinterIdValidator(), mockMediator.Object); var id = ObjectId.GenerateNewId().ToString(); var printer = new Dto.Request.Printer(); var response = new UpdatePrinterCommandResponse(); mockMediator.Setup(x => x.Send( It.IsAny <UpdatePrinterCommand>(), It.IsAny <CancellationToken>())) .ReturnsAsync(response); var cancellationTokenSource = new CancellationTokenSource(); // Act var result = await sut.Update( id, printer, cancellationTokenSource.Token); // Assert mockMediator.Verify(x => x.Send( It.Is <UpdatePrinterCommand>(y => y.Id == id && y.Printer == printer), It.Is <CancellationToken>(y => y == cancellationTokenSource.Token)), Times.Once); Assert.Null(result.Error); }
public async Task GivenInvalidId_AndPrinter_WhenUpdate_ThenQuerySent_AndResponseReturned() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new PrintersController( new PrinterIdValidator(), mockMediator.Object); var cancellationTokenSource = new CancellationTokenSource(); // Act var result = await sut.Update( "HelloWorld", new Dto.Request.Printer(), cancellationTokenSource.Token); // Assert Assert.False(result.Success); Assert.Equal(HttpStatusCode.BadRequest, result.Error.HttpStatusCode); }
public async Task GivenModelStateError_WhenUpdate_ThenBadRequestResponseReturned() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new PrintersController( new PrinterIdValidator(), mockMediator.Object); sut.ModelState.AddModelError("error", "Something bad went down!"); var cancellationTokenSource = new CancellationTokenSource(); // Act var result = await sut.Update( ObjectId.GenerateNewId().ToString(), new Dto.Request.Printer(), cancellationTokenSource.Token); // Assert Assert.False(result.Success); Assert.Equal(HttpStatusCode.BadRequest, result.Error.HttpStatusCode); }