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>(); }
public void AssertIsValid_WithLimitofArmsNotReached_ShouldRaiseNoException() { // Arrange var validation = new DroidValidationInfo { NbArm = 1 }; // Act var exception = Record.Exception(() => Droid.AssertIsValid(validation)); // Assert exception.Should().BeNull(); }
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); }