public void AssemblerCorrectlyReadsInventoryItemDto()
        {
            var eventAreaDto = new EventAreaDto() { EventName = Constants.EventAreas.POLE_VAULT };
            var poleVaulter = new AthleteDto() { Nickname = "poleVaulter", FirstName = "Pole", LastName = "Vaulter1", Gender = 'M', Status = "Current" };
            var modelDto = new ModelDto();
            var model = new Model();
            var inventoryItemDto = new InventoryItemDto()
                {
                    SerialNumber = 1,
                    ModelDto = modelDto,
                    SizeM = 9,
                    SizeW = 11,
                    Width = "N",
                    RequestName = "request1",
                    EventAreaAssignmentDto = eventAreaDto,
                    Status = "Requested",
                };
            var historyDto = new InventoryMovementDto() { EventType = new InventoryEventTypeDto() { EventType = Constants.InventoryEventTypes.ORDER } };

            inventoryItemDto.MovementHistory.Add(historyDto);

            _mockModelAssembler.Setup(x => x.ReadDto(modelDto)).Returns(model);
            _mockAthleteRepository.Setup(x => x.GetByNickname(It.IsAny<String>())).Returns(new Athlete());
            _mockInventoryRepository.Setup(x => x.GetBySerialNumber(inventoryItemDto.SerialNumber));
            _mockInventoryMovementAssembler.Setup(x => x.ReadDto(historyDto)).Returns(new InventoryMovement());
            _mockEventAreaAssembler.Setup(x => x.ReadDto(eventAreaDto)).Returns(new EventArea() { EventName = eventAreaDto.EventName });

            var inventoryItem = _assembler.ReadDto(inventoryItemDto);

            _mockInventoryRepository.VerifyAll();
            _mockModelAssembler.VerifyAll();
            _mockAthleteRepository.VerifyAll();
            _mockInventoryMovementAssembler.VerifyAll();
            _mockEventAreaAssembler.VerifyAll();
        }
        public InventoryMovementDto WriteDto(InventoryMovement inventoryMovement)
        {
            if (inventoryMovement == null)
                throw new ArgumentNullException();

            var invMovementDto = new InventoryMovementDto();

            invMovementDto.Id = inventoryMovement.Id;
            invMovementDto.EventDate = inventoryMovement.EventDate;
            invMovementDto.EventType = ObjectFactory.GetInstance<IInventoryEventTypeAssembler>().WriteDto(inventoryMovement.EventType);
            invMovementDto.Description = inventoryMovement.Description;

            return invMovementDto;
        }
        public InventoryMovement ReadDto(InventoryMovementDto inventoryMovementDto)
        {
            if (inventoryMovementDto == null)
                throw new ArgumentNullException();

            var invMovement = ObjectFactory.GetInstance<IInventoryMovementRepository>().GetById(inventoryMovementDto.Id);

            if (invMovement != null)
                return invMovement;

            var newInvMovement = new InventoryMovement();
            newInvMovement.Id = inventoryMovementDto.Id;
            newInvMovement.EventDate = inventoryMovementDto.EventDate;
            newInvMovement.EventType = ObjectFactory.GetInstance<IInventoryEventTypeAssembler>().ReadDto(inventoryMovementDto.EventType);
            newInvMovement.Description = inventoryMovementDto.Description;

            return newInvMovement;
        }
        public void AssemblerCorrectlyReadsInventoryMovementDto()
        {
            var inventoryMovementDto = new InventoryMovementDto();
            inventoryMovementDto.EventType = new InventoryEventTypeDto() { EventType = Constants.InventoryEventTypes.RECEIPT_FROM_VENDOR };
            inventoryMovementDto.Description = "Description";
            inventoryMovementDto.EventDate = new DateTime(2012, 11, 9);

            _mockInvMovementRepository.Setup(x => x.GetById(inventoryMovementDto.Id));
            _mockInvEventTypeAssembler.Setup(x => x.ReadDto(inventoryMovementDto.EventType)).Returns(new InventoryEventType() { EventType = inventoryMovementDto.EventType.EventType });

            var inventoryMovement = _assembler.ReadDto(inventoryMovementDto);

            Assert.IsNotNull(inventoryMovementDto);
            Assert.AreEqual(inventoryMovementDto.EventType.EventType, inventoryMovement.EventType.EventType);
            Assert.AreEqual(inventoryMovementDto.EventDate, inventoryMovement.EventDate);
            Assert.AreEqual(inventoryMovementDto.Description, inventoryMovement.Description);
            _mockInvMovementRepository.VerifyAll();
            _mockInvEventTypeAssembler.VerifyAll();
            _mockInventoryItemAssembler.VerifyAll();
        }