コード例 #1
0
        public void GivenPrinterDomain_WhenMappedToPrinterDto_ThenMappingCorrect()
        {
            // Arrange
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <DomainToDtoMapping>();
            });
            var sut = new Mapper(config);

            var domainPrinter = new Domain.Models.Printer
            {
                Id       = ObjectId.GenerateNewId(),
                MarlinId = Guid.NewGuid().ToString(),
                Name     = "Hello World",
                BedSizeX = 100,
                BedSizeY = 200,
                BedSizeZ = 300
            };

            // Act
            var dtoPrinter = sut.Map <Dto.Response.Printer>(domainPrinter);

            // Assert
            Assert.Equal(domainPrinter.Id.ToString(), dtoPrinter.Id);
            Assert.Equal(domainPrinter.MarlinId, dtoPrinter.MarlinId);
            Assert.Equal(domainPrinter.Name, dtoPrinter.Name);
            Assert.Equal(domainPrinter.BedSizeX, dtoPrinter.BedSize.X);
            Assert.Equal(domainPrinter.BedSizeY, dtoPrinter.BedSize.Y);
            Assert.Equal(domainPrinter.BedSizeZ, dtoPrinter.BedSize.Z);
        }
コード例 #2
0
 private static Dto.Response.Dimensions MapBedSizeToDimensionResponse(Domain.Models.Printer printer)
 {
     return(new Dto.Response.Dimensions
     {
         X = printer.BedSizeX,
         Y = printer.BedSizeY,
         Z = printer.BedSizeZ
     });
 }
コード例 #3
0
        public async Task GivenCommand_AndPrinterNotExists_WhenHandled_ThenDtoMappedToDomain_AndStorageUpdateCalled_AndErrorResponseReturned()
        {
            // Arrange
            var mockDataStorage            = new Mock <IDataStorageService <Domain.Models.Printer> >();
            var mockMapper                 = new Mock <IMapper>();
            var mockStringLocalizerFactory = new Mock <IStringLocalizerFactory>();
            var mockStringLocalizer        = new Mock <IStringLocalizer>();

            mockStringLocalizerFactory.Setup(x => x.Create(
                                                 It.IsAny <string>(),
                                                 It.IsAny <string>()))
            .Returns(mockStringLocalizer.Object);

            var sut = new UpdatePrinterCommandHandler(
                mockDataStorage.Object,
                mockMapper.Object,
                mockStringLocalizerFactory.Object);

            var command = new UpdatePrinterCommand
            {
                Id      = ObjectId.GenerateNewId().ToString(),
                Printer = new Dto.Request.Printer()
            };

            var printerDomain = new Domain.Models.Printer();

            mockMapper.Setup(x => x.Map <Domain.Models.Printer>(
                                 It.IsAny <Dto.Request.Printer>())).Returns(printerDomain);

            mockDataStorage.Setup(x => x.Update(
                                      It.IsAny <string>(),
                                      It.IsAny <Domain.Models.Printer>(),
                                      It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ReplaceOneResult.Acknowledged(
                              0,
                              null,
                              null));

            mockStringLocalizer.SetupGet(x => x["PrinterNotFound", It.IsAny <string>()]).Returns(new LocalizedString("PrinterNotFound", $"{command.Id}"));

            // Act
            var result = await sut.Handle(
                command,
                CancellationToken.None);

            // Assert
            mockMapper.Verify(x => x.Map <Domain.Models.Printer>(
                                  It.Is <Dto.Request.Printer>(y => y == command.Printer)), Times.Once);
            mockDataStorage.Verify(x => x.Update(
                                       It.Is <string>(y => y == command.Id),
                                       It.Is <Domain.Models.Printer>(y => y == printerDomain),
                                       It.IsAny <CancellationToken>()), Times.Once);
            Assert.NotNull(result.Error);
            Assert.Equal(HttpStatusCode.NotFound, result.Error.HttpStatusCode);
            Assert.Contains(command.Id, result.Error.Message);
        }
コード例 #4
0
        public async Task GivenCommand_WhenHandled_ThenDtoMappedToDomain_AndStorageCreateCalled_AndDomainMappedBackToDto_AndResponseReturned()
        {
            // Arrange
            var mockDataStorage = new Mock <IDataStorageService <Domain.Models.Printer> >();
            var mockMapper      = new Mock <IMapper>();
            var sut             = new CreatePrinterCommandHandler(
                mockDataStorage.Object,
                mockMapper.Object);

            var command = new CreatePrinterCommand
            {
                Printer = new Dto.Request.Printer()
            };

            var printerDomain   = new Domain.Models.Printer();
            var printerResponse = new Dto.Response.Printer();

            mockMapper.Setup(x => x.Map <Domain.Models.Printer>(
                                 It.IsAny <Dto.Request.Printer>())).Returns(printerDomain);

            mockMapper.Setup(x => x.Map <Dto.Response.Printer>(
                                 It.IsAny <Domain.Models.Printer>())).Returns(printerResponse);

            mockDataStorage.Setup(x => x.Create(
                                      It.IsAny <Domain.Models.Printer>(),
                                      It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);

            // Act
            await sut.Handle(
                command,
                CancellationToken.None);

            // Assert
            mockMapper.Verify(x => x.Map <Domain.Models.Printer>(
                                  It.Is <Dto.Request.Printer>(y => y == command.Printer)), Times.Once);

            mockMapper.Verify(x => x.Map <Dto.Response.Printer>(
                                  It.Is <Domain.Models.Printer>(y => y == printerDomain)), Times.Once);

            mockDataStorage.Verify(x => x.Create(
                                       It.Is <Domain.Models.Printer>(y => y == printerDomain),
                                       It.IsAny <CancellationToken>()), Times.Once);
        }
コード例 #5
0
        public async Task GivenCommand_AndPrinterExists_WhenHandled_ThenDtoMappedToDomain_AndStorageUpdateCalled_AndResponseReturned()
        {
            // Arrange
            var mockDataStorage = new Mock <IDataStorageService <Domain.Models.Printer> >();
            var mockMapper      = new Mock <IMapper>();
            var sut             = new UpdatePrinterCommandHandler(
                mockDataStorage.Object,
                mockMapper.Object,
                Mock.Of <IStringLocalizerFactory>());

            var command = new UpdatePrinterCommand
            {
                Id      = ObjectId.GenerateNewId().ToString(),
                Printer = new Dto.Request.Printer()
            };

            var printerDomain = new Domain.Models.Printer();

            mockMapper.Setup(x => x.Map <Domain.Models.Printer>(
                                 It.IsAny <Dto.Request.Printer>())).Returns(printerDomain);

            mockDataStorage.Setup(x => x.Update(
                                      It.IsAny <string>(),
                                      It.IsAny <Domain.Models.Printer>(),
                                      It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ReplaceOneResult.Acknowledged(
                              1,
                              1,
                              null));

            // Act
            var response = await sut.Handle(
                command,
                CancellationToken.None);

            // Assert
            mockMapper.Verify(x => x.Map <Domain.Models.Printer>(
                                  It.Is <Dto.Request.Printer>(y => y == command.Printer)), Times.Once);
            mockDataStorage.Verify(x => x.Update(
                                       It.Is <string>(y => y == command.Id),
                                       It.Is <Domain.Models.Printer>(y => y == printerDomain),
                                       It.IsAny <CancellationToken>()), Times.Once);
            Assert.Null(response.Error);
        }