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); }
private static Dto.Response.Dimensions MapBedSizeToDimensionResponse(Domain.Models.Printer printer) { return(new Dto.Response.Dimensions { X = printer.BedSizeX, Y = printer.BedSizeY, Z = printer.BedSizeZ }); }
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); }
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); }
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); }