public void CreateStreamsTestingDatabase() { var sqlServerLocator = GetSqlServerLocator(); var configuration = SqlServerDatabaseDefinition.BuildDatabaseConfigurationUsingDefaultsAsNecessary("Streams", @"D:\SQL\"); var createDatabaseOp = new CreateDatabaseOp(configuration, ExistingDatabaseStrategy.Throw); var protocol = new SqlOperationsProtocol(sqlServerLocator); protocol.Execute(createDatabaseOp); }
public static void CreateDatabase_ExistingDatabaseTest() { var sqlServerLocatorCopy = GetSqlServerLocator(); var sqlServerLocator = sqlServerLocatorCopy.DeepCloneWithDatabaseName("Monkey"); var protocol = new SqlOperationsProtocol(sqlServerLocator); var configuration = SqlServerDatabaseDefinition.BuildDatabaseConfigurationUsingDefaultsAsNecessary(sqlServerLocator.DatabaseName, @"D:\SQL\"); var createDatabaseOpThrow = new CreateDatabaseOp(configuration, ExistingDatabaseStrategy.Throw); var createDatabaseOpSkip = new CreateDatabaseOp(configuration, ExistingDatabaseStrategy.Skip); protocol.Execute(createDatabaseOpThrow); protocol.Execute(createDatabaseOpSkip); var ex = Record.Exception(() => protocol.Execute(createDatabaseOpThrow)); }
public void CreateStreamExampleDatabaseAndScripts() { var sqlServerLocator = new SqlServerLocator("localhost", "StreamExample3", "sa", "<password>", "SQLDEV2017"); var configuration = SqlServerDatabaseDefinition.BuildDatabaseConfigurationUsingDefaultsAsNecessary(sqlServerLocator.DatabaseName, @"D:\SQL\"); var createDatabaseOp = new CreateDatabaseOp(configuration, ExistingDatabaseStrategy.Throw); var protocol = new SqlOperationsProtocol(sqlServerLocator); protocol.Execute(createDatabaseOp); var resourceLocatorProtocol = new SingleResourceLocatorProtocols(sqlServerLocator); var configurationTypeRepresentation = typeof(NullJsonSerializationConfiguration).ToRepresentation(); SerializerRepresentation defaultSerializerRepresentation = new SerializerRepresentation( SerializationKind.Json, configurationTypeRepresentation); var defaultSerializationFormat = SerializationFormat.String; var stream = new SqlStream( "Example", TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(3), defaultSerializerRepresentation, defaultSerializationFormat, new JsonSerializerFactory(), resourceLocatorProtocol); stream.Execute(new StandardCreateStreamOp(stream.StreamRepresentation, ExistingStreamStrategy.Skip)); this.testOutputHelper.WriteLine("Created database."); /* * var path = "D:/Temp/Example"; * var connectionString = sqlServerLocator.BuildConnectionString(TimeSpan.FromSeconds(20)); * Scripter.ScriptDatabaseToFilePath(connectionString, path, this.testOutputHelper.WriteLine, false); */ }
static SqlServerDatabaseDefinitionTest() { ConstructorArgumentValidationTestScenarios .RemoveAllScenarios() .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentNullException when parameter 'databaseName' is null scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( null, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentNullException), ExpectedExceptionMessageContains = new[] { "databaseName", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'databaseName' is white space scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( Invariant($" {Environment.NewLine} "), referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "databaseName", "white space", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'databaseName' is 'invalid' scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( "not-valid", referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "databaseName", "alphanumeric", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'dataFileLogicalName' is 'invalid' scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, "not-valid", referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "dataFileLogicalName", "alphanumeric", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'dataFilePath' is 'invalid for FileInfo' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFilePath, "C:::::/not-possible-to-new-up-FileInfo-constructor", referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "dataFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'dataFilePath' is 'invalid with single quote' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, "path-with-single-quote'", referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "dataFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'dataFilePath' is 'invalid with double quote' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, "path-with-double-quote\"", referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "dataFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'dataFilePath' is 'invalid with semicolon' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, "path-with-semicolon;", referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "dataFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'logFileLogicalName' is 'invalid' scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFileLogicalName, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, "not-valid", referenceObject.LogFilePath, referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "logFileLogicalName", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'logFilePath' is 'invalid with FileInfo' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFilePath, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, "C:::::/not-possible-to-new-up-FileInfo-constructor", referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "logFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'logFilePath' is 'invalid with single quote' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFilePath, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, "path-with-single-quote'", referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "logFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'logFilePath' is 'invalid with double quote' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFilePath, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, "path-with-double-quote\"", referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "logFilePath", }, }) .AddScenario( () => new ConstructorArgumentValidationTestScenario <SqlServerDatabaseDefinition> { Name = "constructor should throw ArgumentException when parameter 'logFilePath' is 'invalid with semicolon' when specified scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <SqlServerDatabaseDefinition>(); var result = new SqlServerDatabaseDefinition( referenceObject.DatabaseName, referenceObject.DatabaseType, referenceObject.RecoveryMode, referenceObject.DataFilePath, referenceObject.DataFilePath, referenceObject.DataFileCurrentSizeInKb, referenceObject.DataFileMaxSizeInKb, referenceObject.DataFileGrowthSizeInKb, referenceObject.LogFileLogicalName, "path-with-semicolon;", referenceObject.LogFileCurrentSizeInKb, referenceObject.LogFileMaxSizeInKb, referenceObject.LogFileGrowthSizeInKb); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "logFilePath", }, }); }