public void LeaseProvider_must_throw_if_missing_lease_class_config()
 {
     Assert.Throws <ArgumentException>(() =>
     {
         LeaseProvider.Get(Sys).GetLease("x", "lease-missing", "owner1");
     }).Message.Should().Contain("lease-class must not be empty");
 }
Exemple #2
0
        private TimeoutSettings Conf(string overrides)
        {
            var c = ConfigurationFactory.ParseString(overrides)
                    .WithFallback(LeaseProvider.DefaultConfig());

            return(TimeoutSettings.Create(c));
        }
 public void LeaseProvider_must_throw_if_unknown_lease_class_config()
 {
     Assert.Throws <TypeLoadException>(() =>
     {
         LeaseProvider.Get(Sys).GetLease("x", "lease-unknown", "owner1");
     });
 }
        public void LeaseProvider_must_return_different_instance_for_different_ownerName()
        {
            var leaseA1 = LeaseProvider.Get(Sys).GetLease("a4", "lease-a", "owner1");
            var leaseA2 = LeaseProvider.Get(Sys).GetLease("a4", "lease-a", "owner2");

            leaseA1.Should().NotBeSameAs(leaseA2);
        }
        public void LeaseProvider_must_return_same_instance_for_same_leaseName_configPath_and_owner()
        {
            var leaseA1 = LeaseProvider.Get(Sys).GetLease("a2", "lease-a", "owner1");
            var leaseA2 = LeaseProvider.Get(Sys).GetLease("a2", "lease-a", "owner1");

            leaseA1.Should().BeSameAs(leaseA2);
        }
        public void LeaseProvider_must_load_defaults_for_timeouts_if_not_specified()
        {
            var defaults = LeaseProvider.Get(Sys).GetLease("a", "lease-fallback-to-defaults", "owner1");

            defaults.Settings.TimeoutSettings.OperationTimeout.ShouldBe(TimeSpan.FromSeconds(5));
            defaults.Settings.TimeoutSettings.HeartbeatTimeout.ShouldBe(TimeSpan.FromSeconds(120));
            defaults.Settings.TimeoutSettings.HeartbeatInterval.ShouldBe(TimeSpan.FromSeconds(12));
        }
 public void LeaseProvider_must_throw_if_missing_lease_class_constructor()
 {
     EventFilter.Exception <MissingMethodException>(contains: "Invalid lease configuration for leaseName").ExpectOne(() =>
     {
         Assert.Throws <MissingMethodException>(() =>
         {
             LeaseProvider.Get(Sys).GetLease("x", "lease-missing-constructor", "owner1");
         });
     });
 }
        public void LeaseProvider_must_load_lease_implementation()
        {
            var leaseA = LeaseProvider.Get(Sys).GetLease("a", "lease-a", "owner1");

            leaseA.Should().BeOfType <LeaseA>();
            leaseA.Settings.LeaseName.ShouldBe("a");
            leaseA.Settings.OwnerName.ShouldBe("owner1");
            leaseA.Settings.LeaseConfig.GetString("key1").ShouldBe("value1");
            leaseA.Settings.TimeoutSettings.HeartbeatTimeout.ShouldBe(TimeSpan.FromSeconds(100));
            leaseA.Settings.TimeoutSettings.HeartbeatInterval.ShouldBe(TimeSpan.FromSeconds(1));
            leaseA.Settings.TimeoutSettings.OperationTimeout.ShouldBe(TimeSpan.FromSeconds(2));

            var leaseB = LeaseProvider.Get(Sys).GetLease("b", "lease-b", "owner2");

            leaseB.Should().BeOfType <LeaseB>();
            leaseB.Settings.LeaseName.ShouldBe("b");
            leaseB.Settings.OwnerName.ShouldBe("owner2");
            leaseB.Settings.LeaseConfig.GetString("key2").ShouldBe("value2");
        }
Exemple #9
0
        private IRendezvousService Build()
        {
            var logger              = resolver.Resolve <ILogger>();
            var applicationConfig   = resolver.Resolve <RendezvousServiceConfiguration>();
            var socketFactory       = new SocketFactory(applicationConfig.Socket);
            var synodConfigProvider = new SynodConfigurationProvider(applicationConfig.Synod);

#if NET47
            var instanceNameResolver = resolver.Resolve <IInstanceNameResolver>() ?? new InstanceNameResolver();

            var performanceCounterManager = new PerformanceCounterManager <KinoPerformanceCounters>(instanceNameResolver,
                                                                                                    logger);
#else
            var performanceCounterManager = default(IPerformanceCounterManager <KinoPerformanceCounters>);
#endif
            var intercomMessageHub = new IntercomMessageHub(socketFactory,
                                                            synodConfigProvider,
                                                            performanceCounterManager,
                                                            logger);
            var ballotGenerator    = new BallotGenerator(applicationConfig.Lease);
            var roundBasedRegister = new RoundBasedRegister(intercomMessageHub,
                                                            ballotGenerator,
                                                            synodConfigProvider,
                                                            applicationConfig.Lease,
                                                            logger);
            var leaseProvider = new LeaseProvider(roundBasedRegister,
                                                  ballotGenerator,
                                                  applicationConfig.Lease,
                                                  synodConfigProvider,
                                                  logger);

            var serializer     = new ProtobufMessageSerializer();
            var configProvider = new RendezvousConfigurationProvider(applicationConfig.Rendezvous);
            var service        = new RendezvousService(leaseProvider,
                                                       synodConfigProvider,
                                                       socketFactory,
                                                       serializer,
                                                       configProvider,
                                                       performanceCounterManager,
                                                       logger);

            return(service);
        }
Exemple #10
0
 public TestLeaseExt(ExtendedActorSystem system)
 {
     _system = system;
     _system.Settings.InjectTopLevelFallback(LeaseProvider.DefaultConfig());
 }