Example #1
0
    public void ShouldNotInsertMultiple()
    {
        Parallel.ForEach(Enumerable.Range(1, 10), _ =>
        {
            var system = new SystemUnderInfraTest();
            system.UseOptions(new ConfigurationOptions
            {
                ConnectionString     = ConnectionString,
                UpdateConfigurations = new[]
                {
                    new UpdateStorageConfiguration
                    {
                        ConnectionString = ConnectionString,
                        Name             = DefaultConfigurationName.Name()
                    }
                }
            });
            system.StartWorkerServers();
        });

        var system = new SystemUnderInfraTest();

        system.UseOptions(new ConfigurationOptions {
            ConnectionString = ConnectionString
        });
        var storage = system.ConfigurationStorage;

        storage.ReadConfigurations()
        .Should().Have.Count.EqualTo(1);
    }
    public void ShouldStartServerWithWorkers()
    {
        var system = new SystemUnderInfraTest();

        system.UseOptions(new ConfigurationOptions
        {
            ConnectionString     = ConnectionString,
            UpdateConfigurations = new[]
            {
                new UpdateStorageConfiguration
                {
                    ConnectionString = ConnectionString,
                    Name             = DefaultConfigurationName.Name()
                }
            }
        });
        system.StartWorkerServers();
    }
Example #3
0
        public void ShouldReturnCorrectNumberOfWorkServersConcurrently()
        {
            const int storageCount = 500;
            var       system       = new SystemUnderInfraTest();

            system.UseOptions(new ConfigurationOptions {
                ConnectionString = ConnectionString
            });
            Enumerable.Range(1, storageCount)
            .ForEach(_ => { system.ConfigurationStorage.WriteConfiguration(new StoredConfiguration {
                    ConnectionString = ConnectionString
                }); });

            var hangfireConfiguration = system.StartWorkerServers();
            var run = new ConcurrencyRunner();

            run.InParallel(() =>
            {
                var actual = hangfireConfiguration.QueryAllWorkerServers().Count();
                Assert.AreEqual(storageCount, actual);
            })
            .Times(100)
            .Wait();
        }