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(); }
private ExcecutionResult ExecuteSqlScripts( DatabaseConnectionParameters connectionParameters, Dictionary <string, FileInfo> filesToExecute, Encoding encodingForReadingSqlScripts) { connectionParameters.BeforeExecuteScriptsAction = BeforeExecuteScriptsAction.None; IDbConnection connection = CreateDbConnection(connectionParameters); TransactionalSqlFileExecutor sqlFileExecutor = new TransactionalSqlFileExecutor(connection, _outputLogger); try { sqlFileExecutor.ExecuteTransactional(filesToExecute.Select(item => item.Key).ToList(), encodingForReadingSqlScripts); } catch (TransactionalSqlFileExecutorRollbackException exception) { var result = new ExcecutionResult { Success = false }; result.Errors.Add(exception.Message); result.Errors.Add(exception.MainException.Message); result.Errors.Add(exception.InnerException.Message); return(result); } 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 }); }
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))); }