public async Task HandleCreateArm_WithValidDroidId_ArmCreatedSuccessfully()
        {
            // Arrange
            var droidHandler = new DroidHandler(_repoMock.Object, _repoArmMock.Object, _quoteMock.Object, _encryptionMock.Object);
            var createArm    = new CreateArm(_serialNumber);

            var getDroidResult = Task.FromResult(_droidDto);

            _repoMock
            .Setup(repo => repo.GetBySerialNumberAsync(_serialNumber, Droid.AssertExists))
            .Returns(getDroidResult);

            var getArmResult = Task.FromResult(_armDtoList);

            _repoArmMock
            .Setup(repo => repo.GetDroidArmsAsync(_serialNumber))
            .Returns(getArmResult);
            _repoArmMock
            .Setup(repo => repo.InsertDroidArmAsync(_serialNumber, It.IsAny <Arm>(), It.IsAny <Action <IDroidValidationInfo> >()))
            .Returns(Task.CompletedTask);

            // Act
            await droidHandler.HandleAsync(createArm).ConfigureAwait(false);

            // Assert

            _repoArmMock.Verify((r) => r.InsertDroidArmAsync(_serialNumber, It.IsAny <Arm>(), It.IsAny <Action <IDroidValidationInfo> >()), Times.Once);
        }
        public async Task CreateArm_WithValidSerialNumber_ReturnsNoContentStatusCodeAsync()
        {
            // Arrange
            var serialNumber = Guid.Parse("341d9e5b-ae06-4c06-ba4f-7256317792cd");
            var createArm    = new CreateArm(serialNumber);

            _handler
            .Setup(x => x.HandleAsync(createArm))
            .Returns(Task.CompletedTask);

            // Act
            var httpResponse = await _controller.PostAsync(serialNumber);

            var httpCode = ((StatusCodeResult)httpResponse).StatusCode;

            // Assert
            httpCode.Should().Be((int)HttpStatusCode.NoContent);
        }