public void Parse_files(string sourceFile, string targetFile, bool hasError) { Processors.DbScriptFakeExecutor executor = new Processors.DbScriptFakeExecutor(); DbScriptsInterpreter interpreter = new DbScriptsInterpreter(executor, new Bau.Libraries.LibLogger.Core.LogManager()); ProgramResultModelCollection results = LoadResults(targetFile); bool executed; // Ejecuta el archivo executed = interpreter.Execute(LoadFile(sourceFile), null); // Comprueba si ha habido algún error Assert.Equal(hasError, !executed); // Comprueba los resultados if (executed) { CheckResults(executor.Results, results); } }
/// <summary> /// Compara los resultados de ejecución con los datos del archivo de resultados /// </summary> private void CheckResults(ProgramResultModelCollection executorResults, ProgramResultModelCollection fileResults) { // Compara el número de resultados Assert.Equal(executorResults.Count, fileResults.Count); // Compara cada uno de los elementos for (int index = 0; index < executorResults.Count; index++) { switch (executorResults[index]) { case ResultSqlCommandModel command: CheckSqlCommand(command, fileResults[index] as ResultSqlCommandModel); break; case ResultMessageModel command: CheckMessageCommand(command, fileResults[index] as ResultMessageModel); break; } } }