public void MsSqlDbInstaller_CreatorUserWithoutPasswordIsInvalid() { var parameters = new MsSqlDatabaseInstallationOptions { Server = "server", DatabaseName = "DB1", DbCreatorUserName = "******", DbCreatorPassword = null }; var installer = CreateInstaller(parameters); Exception exception = null; // ACTION try { installer.GetConnectionString(parameters); } catch (Exception e) { exception = e; } // ASSERT Assert.IsNotNull(exception); Assert.IsInstanceOfType(exception, typeof(ArgumentException)); Assert.AreEqual("Value cannot be null. (Parameter 'Password')", exception.Message); }
public void MsSqlDbInstaller_PartialInstall_ExistingCustomer() { var database = "Database1"; var userName = "******"; var password = "******"; CleanupServer(database, userName); EnsureLogin(userName, password); Assert.IsTrue(IsLoginExists(userName)); // ACTION var parameters = new MsSqlDatabaseInstallationOptions { Server = LocalServer, DatabaseName = database, DbCreatorUserName = null, DbCreatorPassword = null, DbOwnerUserName = userName, DbOwnerPassword = password }; var installer = CreateInstaller(parameters); installer.InstallAsync().GetAwaiter().GetResult(); // ASSERT Assert.IsTrue(IsDatabaseExists(database)); var integratedUserName = $"{Environment.UserDomainName}\\{Environment.UserName}"; Assert.IsTrue(IsDbOwner(integratedUserName, database) || IsDbOwner2(integratedUserName, database)); Assert.IsFalse(IsDbOwner("Creator1", database) || IsDbOwner2("Creator1", database)); Assert.IsTrue(IsDbOwner(userName, database) || IsDbOwner2(userName, database)); }
public void MsSqlDbInstaller_CleanInstall_IntegratedCreatorForSqlCustomer() { CleanupServer("Database1", "Customer1"); EnsureCreator("Creator1", "CreatorPassword1"); // ACTION var parameters = new MsSqlDatabaseInstallationOptions { Server = LocalServer, DatabaseName = "Database1", DbCreatorUserName = null, DbCreatorPassword = null, DbOwnerUserName = "******", DbOwnerPassword = "******" }; var installer = CreateInstaller(parameters); installer.InstallAsync().GetAwaiter().GetResult(); // ASSERT Assert.IsTrue(IsDatabaseExists("Database1")); var integratedUserName = $"{Environment.UserDomainName}\\{Environment.UserName}"; Assert.IsTrue(IsDbOwner(integratedUserName, "Database1") || IsDbOwner2(integratedUserName, "Database1")); Assert.IsFalse(IsDbOwner("Creator1", "Database1") || IsDbOwner2("Creator1", "Database1")); Assert.IsTrue(IsDbOwner("Customer1", "Database1") || IsDbOwner2("Customer1", "Database1")); var status = GetInstallationStatus(parameters); var integratedUser = $"{Environment.UserDomainName}\\{Environment.UserName}"; AssertInstallationStatus(true, integratedUser, false, true, null, true, status); }
} //TODO:~ UNDELETABLE public MsSqlDataProvider(IOptions <DataOptions> dataOptions, IOptions <ConnectionStringOptions> connectionOptions, IOptions <MsSqlDatabaseInstallationOptions> dbInstallerOptions, MsSqlDatabaseInstaller databaseInstaller, IDataInstaller dataInstaller, ILogger <MsSqlDataProvider> logger) { DataInstaller = dataInstaller ?? throw new ArgumentNullException(nameof(dataInstaller)); DataOptions = dataOptions.Value; _dbInstallerOptions = dbInstallerOptions.Value; _databaseInstaller = databaseInstaller; ConnectionStrings = connectionOptions; _logger = logger; }
public void MsSqlDbInstaller_ConnectionString_LocalServerInstance() { var parameters = new MsSqlDatabaseInstallationOptions { Server = LocalServer, DatabaseName = "DB1" }; var installer = CreateInstaller(parameters); // ACTION var connectionString = installer.GetConnectionString(parameters); // ASSERT Assert.AreEqual($"Data Source={LocalServer};Initial Catalog=DB1;Integrated Security=True", connectionString); }
public void MsSqlDbInstaller_ConnectionStrings(string server, string user, string password, string result) { var parameters = new MsSqlDatabaseInstallationOptions { Server = server, DatabaseName = "DB1", DbCreatorUserName = user, DbCreatorPassword = password }; var installer = CreateInstaller(parameters); // ACTION var connectionString = installer.GetConnectionString(parameters); // ASSERT Assert.AreEqual(result, connectionString); }
public void MsSqlDbInstaller_PartialInstall_SecondInstall() { var database = "Database1"; var userName = "******"; var password = "******"; CleanupServer(database, userName); EnsureLogin(userName, password); var connectionString = GetConnectionStringFor(database); var installer = CreateInstaller(); installer.CreateDatabaseAsync(database, SystemConnectionString).ConfigureAwait(false).GetAwaiter() .GetResult(); installer.CreateUserAsync(userName, connectionString).ConfigureAwait(false).GetAwaiter().GetResult(); installer.AddDbOwnerRoleAsync(userName, connectionString).ConfigureAwait(false).GetAwaiter().GetResult(); Assert.IsTrue(IsLoginExists(userName)); Assert.IsTrue(IsDatabaseExists(database)); Assert.IsTrue(IsDbOwner(userName, database)); // ACTION var parameters = new MsSqlDatabaseInstallationOptions { Server = LocalServer, DatabaseName = database, DbCreatorUserName = null, DbCreatorPassword = null, DbOwnerUserName = userName, DbOwnerPassword = password }; installer = CreateInstaller(parameters); installer.InstallAsync().GetAwaiter().GetResult(); // ASSERT Assert.IsTrue(IsDatabaseExists(database)); var integratedUserName = $"{Environment.UserDomainName}\\{Environment.UserName}"; Assert.IsTrue(IsDbOwner(integratedUserName, database) || IsDbOwner2(integratedUserName, database)); Assert.IsTrue(IsDbOwner(userName, database) || IsDbOwner2(userName, database)); }
public void MsSqlDbInstaller_PartialInstall_ExistingCustomer_Disabled() { var database = "Database1"; var userName = "******"; var password = "******"; CleanupServer(database, userName); EnsureLogin(userName, password); DisableLogin(userName); Assert.IsTrue(IsLoginExists(userName)); // ACTION var parameters = new MsSqlDatabaseInstallationOptions { Server = LocalServer, DatabaseName = database, DbCreatorUserName = null, DbCreatorPassword = null, DbOwnerUserName = userName, DbOwnerPassword = password }; var installer = CreateInstaller(parameters); Exception exception = null; try { installer.InstallAsync().GetAwaiter().GetResult(); } catch (Exception e) { exception = e; } // ASSERT Assert.IsFalse(IsDatabaseExists(database)); Assert.IsNotNull(exception); Assert.IsInstanceOfType(exception, typeof(DbCreationException)); Assert.AreEqual("User is disabled on this server.", exception.Message); }
public void MsSqlDbInstaller_EmptyArgsIsInvalid() { var parameters = new MsSqlDatabaseInstallationOptions(); var installer = CreateInstaller(parameters); Exception exception = null; // ACTION try { installer.ValidateParameters(parameters); } catch (Exception e) { exception = e; } // ASSERT Assert.IsNotNull(exception); Assert.IsInstanceOfType(exception, typeof(ArgumentException)); Assert.AreEqual("ExpectedDatabaseName cannot be null or empty.", exception.Message); }
private static MsSqlDatabaseInstaller CreateInstaller(MsSqlDatabaseInstallationOptions options = null) { return(new MsSqlDatabaseInstaller(Options.Create(options ?? new MsSqlDatabaseInstallationOptions()), NullLoggerFactory.Instance.CreateLogger <MsSqlDatabaseInstaller>())); }