コード例 #1
0
        private ExcecutionResult ExecuteNonTransactionalCreateDatabaseSqlScripts(
            DatabaseConnectionParameters connectionParameters,
            Dictionary <string, FileInfo> filesToExecute,
            Encoding encodingForReadingSqlScripts)
        {
            IDbConnection connection = CreateDbConnection(connectionParameters);
            TransactionalSqlFileExecutor sqlFileExecutor = new TransactionalSqlFileExecutor(connection, _outputLogger);

            try
            {
                sqlFileExecutor.ExecuteNonTransactional(filesToExecute.Select(item => item.Key).ToList(), encodingForReadingSqlScripts);
            }
            catch (TransactionalSqlFileExecutorException exception)
            {
                var result = new ExcecutionResult {
                    Success = false
                };
                result.Errors.Add(exception.Message);
                result.Errors.Add(exception.InnerException.Message);
                return(result);
            }

            return(new ExcecutionResult {
                Success = true
            });
        }
コード例 #2
0
        public void TransactionalSqlFileExecutorShouldCallOutputLoggerWriteLineMethod()
        {
            // Arrange
            IDbConnection conn         = MockRepository.GenerateStub <IDbConnection>();
            IOutputLogger outputLogger = MockRepository.GenerateMock <IOutputLogger>();

            outputLogger.Expect(method => method.WriteInfoLine("Dummy", 1)).Repeat.Never();
            TransactionalSqlFileExecutor executor = new TransactionalSqlFileExecutor(conn, outputLogger);
            List <string> fileList = new List <string>();

            // Act
            executor.ExecuteTransactional(fileList, null);

            // Assert
            outputLogger.VerifyAllExpectations();
        }
コード例 #3
0
        public void TransactionalSqlFileExecutorShouldReadFilesWithGivenEncoding(string inputFile, bool useUtf8)
        {
            // Arrange
            IDbConnection  conn         = MockRepository.GenerateStub <IDbConnection>();
            IOutputLogger  outputLogger = MockRepository.GenerateMock <IOutputLogger>();
            IDbCommand     command      = MockRepository.GenerateStub <IDbCommand>();
            IDbTransaction transaction  = MockRepository.GenerateStub <IDbTransaction>();

            conn.Expect(method => method.BeginTransaction()).Return(transaction);
            conn.Expect(method => method.CreateCommand()).Return(command);

            List <string> fileList = new List <string> {
                inputFile
            };
            Encoding encoding = useUtf8 ? Encoding.UTF8 : Encoding.Default;

            TransactionalSqlFileExecutor executor = new TransactionalSqlFileExecutor(conn, outputLogger);

            // Act
            executor.ExecuteTransactional(fileList, encoding);

            // Assert
            Assert.That(command.CommandText, Is.EqualTo(File.ReadAllText(inputFile, encoding)));
        }