Esempio n. 1
0
        public MySqlTests()
        {
            Env    = new CliEnvironment();
            Logger = new CaptureLogsLogger();

            Environment.SetEnvironmentVariable("CONNSTR", $"Server=127.0.0.1;Database={DbName};Uid=root;Pwd={Pwd};");
        }
Esempio n. 2
0
        public void CanHandleDelimiter()
        {
            var logger = new CaptureLogsLogger();
            var recordingDbConnection = new RecordingDbConnection(logger, "schemaversions");

            recordingDbConnection.SetupRunScripts();
            var upgrader = DeployChanges.To
                           .MySqlDatabase(string.Empty)
                           .OverrideConnectionFactory(recordingDbConnection)
                           .LogTo(logger)
                           .WithScript("Script0003", @"USE `test`;
DROP procedure IF EXISTS `testSproc`;

DELIMITER $$

USE `test`$$
CREATE PROCEDURE `testSproc`(
        IN   ssn                    VARCHAR(32)
     )
BEGIN 

    SELECT id      
    FROM   customer as c
    WHERE  c.ssn = ssn ; 

END$$").Build();

            var result = upgrader.PerformUpgrade();

            result.Successful.ShouldBe(true);
            this.Assent(logger.Log, new Configuration().UsingSanitiser(Scrubbers.ScrubDates));
        }
Esempio n. 3
0
        public SqlServerTests()
        {
            Env    = new CliEnvironment();
            Logger = new CaptureLogsLogger();

            Environment.SetEnvironmentVariable("CONNSTR", "Data Source=127.0.0.1;Initial Catalog=DbUp;Persist Security Info=True;User ID=sa;Password=SaPwd2017");
        }
Esempio n. 4
0
        public PostgreSqlTests()
        {
            Env    = new CliEnvironment();
            Logger = new CaptureLogsLogger();

            Environment.SetEnvironmentVariable("CONNSTR", "Host=127.0.0.1;Database=dbup;Username=postgres;Password=PostgresPwd2019;Port=5432");
        }
Esempio n. 5
0
 public RecordingDbCommand(CaptureLogsLogger logger, ExecutedSqlScript[] runScripts, string schemaTableName,
                           Dictionary <string, Func <object> > scalarResults, Dictionary <string, Func <int> > nonQueryResults)
 {
     this.logger          = logger;
     this.runScripts      = runScripts;
     this.schemaTableName = schemaTableName;
     this.scalarResults   = scalarResults;
     this.nonQueryResults = nonQueryResults;
     Parameters           = new RecordingDataParameterCollection(logger);
 }
        public void logs_output_when_configured_to()
        {
            var dbConnection = Substitute.For <IDbConnection>();
            var command      = Substitute.For <IDbCommand>();

            var reader = Substitute.For <IDataReader>();

            reader.FieldCount.Returns(2);
            reader.GetName(Arg.Is(0)).Returns("One");
            reader.GetName(Arg.Is(1)).Returns("Two");
            reader.GetName(Arg.Is <int>(i => i < 0 || i > 1)).Throws(new ArgumentOutOfRangeException("i"));

            reader.Read().Returns(true, false);
            reader.GetValue(Arg.Is(0)).Returns("A");
            reader.GetValue(Arg.Is(1)).Returns("B");
            reader.NextResult().Returns(false);

            command.ExecuteReader().Returns(reader);

            var logger = new CaptureLogsLogger();

            dbConnection.CreateCommand().Returns(command);
            var executor = new SqlScriptExecutor(() => new TestConnectionManager(dbConnection, true)
            {
                IsScriptOutputLogged = true
            },
                                                 () => logger,
                                                 "foo",
                                                 () => true,
                                                 null,
                                                 () => Substitute.For <IJournal>());

            executor.Execute(new SqlScript("Test", "SELECT * FROM $schema$.[Table]"));

            command.Received().ExecuteReader();
            command.DidNotReceive().ExecuteNonQuery();
            command.CommandText.ShouldBe("SELECT * FROM [foo].[Table]");

            logger.Log.Trim()
            .ShouldBe(string.Join(Environment.NewLine, new[]
            {
                "Info:         Executing Database Server script 'Test'",
                "Info:         -------------",
                "Info:         | One | Two |",
                "Info:         -------------",
                "Info:         |   A |   B |",
                "Info:         -------------",
                "Info:"
            }));
        }
Esempio n. 7
0
        public ConfigurationHelperTests()
        {
            scripts = new List <SqlScript>
            {
                new SqlScript("Script1.sql", "create table Foo (Id int identity)")
                //new SqlScript("Script2.sql", "alter table Foo add column Name varchar(255)"),
                //new SqlScript("Script3.sql", "insert into Foo (Name) values ('test')")
            };

            logger = new CaptureLogsLogger();
            recordingConnection   = new RecordingDbConnection(logger, "SchemaVersions");
            testConnectionFactory = new DelegateConnectionFactory(_ => recordingConnection);

            upgradeEngineBuilder = DeployChanges.To
                                   .SqlDatabase("testconn")
                                   .WithScripts(new TestScriptProvider(scripts))
                                   .OverrideConnectionFactory(testConnectionFactory)
                                   .LogTo(logger);
        }
Esempio n. 8
0
            public override OracleTableJournal Given()
            {
                dbConnection = Substitute.For <IDbConnection>();
                dbCommand    = Substitute.For <IDbCommand>();
                dbCommand.ExecuteScalar().Returns(1);
                log = new CaptureLogsLogger();

                var table = new DataTable();

                table.Columns.Add("column", Type.GetType("System.String"));
                var row = table.NewRow();

                row["column"] = "id";
                table.Rows.Add(row);
                var fakeReader = new FakeReader(table);

                dbCommand.ExecuteReader().Returns(fakeReader);
                dbConnection.CreateCommand().Returns(dbCommand);

                var connectionManager = new TestConnectionManager(dbConnection);
                var versionTracker    = new OracleTableJournal(() => connectionManager, () => log, null, "history");

                return(versionTracker);
            }
Esempio n. 9
0
 public ConfigLoaderTests()
 {
     Logger = new CaptureLogsLogger();
     recordingConnection   = new RecordingDbConnection(Logger, "SchemaVersions");
     testConnectionFactory = new DelegateConnectionFactory(_ => recordingConnection);
 }
Esempio n. 10
0
 public RecordingDbConnection(CaptureLogsLogger logger, string schemaTableName)
 {
     this.logger          = logger;
     this.schemaTableName = schemaTableName;
 }
Esempio n. 11
0
 public VariableSubstitutionTests()
 {
     Logger = new CaptureLogsLogger();
     recordingConnection   = new RecordingDbConnection(Logger, "SchemaVersions");
     testConnectionFactory = new DelegateConnectionFactory(_ => recordingConnection);
 }
Esempio n. 12
0
 public RecordingDbTransaction(CaptureLogsLogger logger)
 {
     this.logger = logger;
 }