public void prevent_a_lease_from_being_aquired_more_frequently_than_it_is_renewed(int aquireEveryDays)
        {
            var builder = new LeaseConfigurationBuilder(NodeId);

            builder.RenewLeaseEvery(TimeSpan.FromDays(2));
            builder.AquireLeaseEvery(TimeSpan.FromDays(aquireEveryDays));

            Assert.Throws <HostConfigurationException>(() => builder.Build());
        }
        public void register_the_lease_manager_with_the_builder()
        {
            var builder = new LeaseConfigurationBuilder("Node1");

            builder.WithAzureBlobStorageLeaseManager(new BlobSettings(CloudStorageAccount.DevelopmentStorageAccount));
            var built = builder.Build();

            Assert.IsType <AzureBlobLeaseManager>(built.LeaseManager(built));
        }
        public void use_the_aquire_lease_time_that_is_provided()
        {
            var healthCheckEvery = TimeSpan.FromDays(1);

            var builder = new LeaseConfigurationBuilder(NodeId);

            builder.AquireLeaseEvery(healthCheckEvery);

            Assert.Equal(healthCheckEvery, builder.Build().LeaseCriteria.AquireLeaseEvery);
        }
        public void use_the_lease_manager_that_is_provided()
        {
            var fakeManager = A.Fake <ILeaseManager>();
            var builder     = new LeaseConfigurationBuilder(NodeId);

            builder.WithLeaseManager(configuration => fakeManager);
            var config = builder.Build();

            Assert.Same(fakeManager, config.LeaseManager(config));
        }
        public void use_the_lease_calculator_that_is_provided()
        {
            var fakeCalculator = A.Fake <ILeaseLengthCalculator>();
            var builder        = new LeaseConfigurationBuilder(NodeId);

            builder.LeaseLength(() => fakeCalculator);
            var config = builder.Build();

            Assert.Same(fakeCalculator, config.LeaseLengthCalculator);
        }
        public void use_the_lease_renewal_time_that_is_provided()
        {
            var leaseUpdate = TimeSpan.FromDays(1);

            var builder = new LeaseConfigurationBuilder(NodeId);

            builder.RenewLeaseEvery(leaseUpdate);
            builder.AquireLeaseEvery(TimeSpan.FromDays(2));

            Assert.Equal(leaseUpdate, builder.Build().LeaseCriteria.RenewLeaseEvery);
        }