public void Should_throw_bigger_value_than_maximum_refresh_delay_default_for_minimum_refresh_delay([Random(1001, 1100, 5, Distinct = true)] double millisecondsBiggerThanMaximumRefreshDelayDefaultValue)
        {
            var configuration = new PessimisticLockingConfiguration();

            configuration.SetLeaseLockAcquisitionMinimumRefreshDelay(TimeSpan.FromMilliseconds(millisecondsBiggerThanMaximumRefreshDelayDefaultValue));

            Assert.Throws <ArgumentOutOfRangeException>(() => configuration.ValidateRefreshDelays());
        }
        public void Should_have_default_values()
        {
            var configuration = new PessimisticLockingConfiguration();

            Assert.That(configuration.LeaseLockTime, Is.EqualTo(TimeSpan.FromMinutes(1)));
            Assert.That(configuration.LeaseLockAcquisitionTimeout, Is.EqualTo(TimeSpan.FromMinutes(1)));
            Assert.That(configuration.LeaseLockAcquisitionMinimumRefreshDelay, Is.EqualTo(TimeSpan.FromMilliseconds(500)));
            Assert.That(configuration.LeaseLockAcquisitionMaximumRefreshDelay, Is.EqualTo(TimeSpan.FromMilliseconds(1000)));
            Assert.That(configuration.PessimisticLockingEnabled, Is.False);
        }
        public void Should_set_lease_lock_acquisition_timeout([Random(1, 10, 5, Distinct = true)] double minutes)
        {
            var configuration = new PessimisticLockingConfiguration();

            var fromMinutes = TimeSpan.FromMilliseconds(minutes);

            configuration.SetLeaseLockTime(fromMinutes);

            Assert.AreEqual(fromMinutes, configuration.LeaseLockTime);
        }
        public void Should_set_minimum_refresh_delay_when_below_default_maximum_refresh_delay([Random(1, 1000, 5, Distinct = true)] double millisecondsSmallerThanMaximumRefreshDelayDefaultValue)
        {
            var configuration = new PessimisticLockingConfiguration();

            var fromMilliseconds = TimeSpan.FromMilliseconds(millisecondsSmallerThanMaximumRefreshDelayDefaultValue);

            configuration.SetLeaseLockAcquisitionMinimumRefreshDelay(fromMilliseconds);
            configuration.ValidateRefreshDelays();

            Assert.AreEqual(fromMilliseconds, configuration.LeaseLockAcquisitionMinimumRefreshDelay);
        }
        public void Should_throw_on_zero_value_for_minimum_refresh_delay()
        {
            var configuration = new PessimisticLockingConfiguration();

            Assert.Throws <ArgumentOutOfRangeException>(() => configuration.SetLeaseLockAcquisitionMinimumRefreshDelay(TimeSpan.Zero));
        }
        public void Should_throw_on_zero_value_for_lease_lock_acquisition_timeout()
        {
            var configuration = new PessimisticLockingConfiguration();

            Assert.Throws <ArgumentOutOfRangeException>(() => configuration.SetLeaseLockAcquisitionTimeout(TimeSpan.Zero));
        }