public void ShouldCreateWithDefaultSchemaName()
    {
        var system = new SystemUnderTest();

        system.ConfigurationApi().CreateServerConfiguration(new CreateSqlServerWorkerServer
        {
            SchemaName = null
        });

        var storedConfiguration = system.ConfigurationStorage.Data.Last();

        Assert.AreEqual(DefaultSchemaName.SqlServer(), storedConfiguration.SchemaName);
    }
        public void ShouldUseDefaultSchemaNameWhenEmpty()
        {
            var system = new SystemUnderTest();

            system.ConfigurationStorage.Has(new StoredConfiguration {
                SchemaName = "", ConnectionString = @"Data Source=.;Initial Catalog=fakedb;"
            });

            system.WorkerServerStarter.Start();

            Assert.AreEqual(DefaultSchemaName.SqlServer(),
                            system.Hangfire.StartedServers.Single().storage.SqlServerOptions.SchemaName);
        }
    public void ShouldThrowWhenDefaultSchemaNameAlreadyExists()
    {
        var system = new SystemUnderTest();

        system.SchemaInstaller.Has(DefaultSchemaName.SqlServer(), "Data Source=_;Initial Catalog=existingDatabase");

        Assert.Throws <Exception>(() => system.ConfigurationApi().CreateServerConfiguration(
                                      new CreateSqlServerWorkerServer
        {
            Server     = "_",
            Database   = "existingDatabase",
            SchemaName = null
        }));
    }
        public void ShouldBuildWithDefaultSchemaName()
        {
            var system = new SystemUnderTest();
            var storedConfiguration = new StoredConfiguration
            {
                ConnectionString = "Data Source=.",
                SchemaName       = null
            };

            system.ConfigurationStorage.Has(storedConfiguration);

            var result = system.ViewModelBuilder.BuildServerConfigurations();

            Assert.AreEqual(DefaultSchemaName.SqlServer(), result.Single().SchemaName);
        }