コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }