示例#1
0
        public void AssertIsValid_WithLimitofArmsReached_ReturnsDroidTooManyArmsException()
        {
            // Arrange
            var validation = new DroidValidationInfo {
                NbArm = 2
            };

            // Act
            var exception = Record.Exception(() => Droid.AssertIsValid(validation));

            // Assert
            exception.Should().BeOfType <DroidTooManyArmsException>();
        }
示例#2
0
        public void AssertIsValid_WithLimitofArmsNotReached_ShouldRaiseNoException()
        {
            // Arrange
            var validation = new DroidValidationInfo {
                NbArm = 1
            };

            // Act
            var exception = Record.Exception(() => Droid.AssertIsValid(validation));

            // Assert
            exception.Should().BeNull();
        }
示例#3
0
        public Task InsertDroidArmAsync(DroidId serialNumber, Arm arm, Action <IDroidValidationInfo> assertDroidIsValid)
        {
            // INFO: In multi-instance, semaphore is not possible, here is a check before insert it
            var nbExistingArms    = _arms.Count(droid => droid.DroidId == (Guid)serialNumber);
            var nbArmsAfterInsert = nbExistingArms + 1;
            var droidValidation   = new DroidValidationInfo {
                NbArm = nbArmsAfterInsert
            };

            assertDroidIsValid(droidValidation);

            _arms.Add(arm.ToDto(serialNumber));
            return(Task.CompletedTask);
        }