From a4780b8ec0c8aca5b3a268a1114e7b919677a1a7 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Mon, 6 Apr 2015 01:00:49 +0200 Subject: [PATCH] =?UTF-8?q?-=20Correcci=C3=B3n=20de=20Tests=20y=20agregado?= =?UTF-8?q?=20de=20nuevos=20UT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ft__foxbin2prg__c_conversor_bin_a_prg.prg | 139 ++++++++++++++ .../ft__foxbin2prg__c_conversor_prg_a_bin.prg | 129 +++++++++++++ ...rsor_base__get_SeparatedLineAndComment.prg | 127 ++++++++++++ ...r_base__lineIsOnlyCommentAndNoMetadata.prg | 180 ++++++++++++++++++ ...rg__c_foxbin2prg__EvaluarConfiguracion.prg | 28 +-- foxbin2prg.exe | Bin 564793 -> 564784 bytes foxbin2prg.prg | 14 +- 7 files changed, 594 insertions(+), 23 deletions(-) create mode 100644 TESTS/ft__foxbin2prg__c_conversor_bin_a_prg.prg create mode 100644 TESTS/ft__foxbin2prg__c_conversor_prg_a_bin.prg create mode 100644 TESTS/ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment.prg create mode 100644 TESTS/ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata.prg diff --git a/TESTS/ft__foxbin2prg__c_conversor_bin_a_prg.prg b/TESTS/ft__foxbin2prg__c_conversor_bin_a_prg.prg new file mode 100644 index 0000000..c7c3759 --- /dev/null +++ b/TESTS/ft__foxbin2prg__c_conversor_bin_a_prg.prg @@ -0,0 +1,139 @@ +DEFINE CLASS ft__foxbin2prg__c_conversor_bin_a_prg AS FxuTestCase OF FxuTestCase.prg + + #IF .F. + LOCAL THIS AS ft__foxbin2prg__c_conversor_bin_a_prg OF ft__foxbin2prg__c_conversor_bin_a_prg.PRG + #ENDIF + + #DEFINE C_FB2P_VALUE_I '' + #DEFINE C_FB2P_VALUE_F '' + #DEFINE CR_LF CHR(13) + CHR(10) + #DEFINE C_CR CHR(13) + #DEFINE C_LF CHR(10) + #DEFINE C_TAB CHR(9) + #DEFINE C_PROC 'PROCEDURE' + #DEFINE C_ENDPROC 'ENDPROC' + #DEFINE C_TEXT 'TEXT' + #DEFINE C_ENDTEXT 'ENDTEXT' + #DEFINE C_IF_F '#IF .F.' + #DEFINE C_ENDIF '#ENDIF' + #DEFINE C_DEFINE_CLASS 'DEFINE CLASS' + #DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE' + icObj = NULL + + + ******************************************************************************************************************************************* + FUNCTION SETUP + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + *LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + *DOEVENTS FORCE + SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG') + oFXU_LIB.setup_comun() + + *THIS.icObj = NEWOBJECT("c_conversor_base", "FOXBIN2PRG.PRG") + *loObj = THIS.icObj + *loObj.l_Test = .F. + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION TearDown + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + THIS.icObj = NULL + + IF VARTYPE(oFXU_LIB) = "O" + oFXU_LIB.teardown_comun() + oFXU_LIB = NULL + ENDIF + RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + RELEASE oFXU_LIB + CLOSE PROCEDURES + CLEAR RESOURCES + SYS(1104) + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Evaluate_results + LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado + + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + + IF PCOUNT() = 0 + THIS.messageout( "* Support method, not a valid test." ) + RETURN .T. + ENDIF + + IF ISNULL(toEx) + *-- Visualización de valores + THIS.messageout( ' CodError: ' + TRANSFORM(tnCodError_Esperado) ) + + + *-- Evaluación de valores + *THIS.assertequals( '[' + tcMemo_Esperado + ']', '[' + tcMemo_Salida + ']', "Contenido del Memo de PROCEDURE" ) + + ELSE + *-- Evaluación de errores + THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) ) + THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) ) + THIS.messageout( TRANSFORM(toEx.LINECONTENTS) ) + + THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' ) + ENDIF + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaLibreria_PROCEDURE_IN_LPARAMETERS_VCX_y_NoDevolverErrores + LOCAL lnCodError, lnCodError_Esperado ; + , lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ; + , loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ; + , loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ; + , loEx AS EXCEPTION + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + + TRY + loEx = NULL + loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG") + *loCnv.l_Debug = .F. + *loCnv.l_ShowErrors = .F. + *loCnv.l_Test = .T. + + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lc_File = 'PROCEDURE_IN_LPARAMETERS.VCX' + lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) + lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) + lnCodError_Esperado = 0 + + oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) + + loCnv.Ejecutar( lc_OutputFile, '', '', '', '1', '0', '0', '', '', .T. ) + *loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) + THIS.Evaluate_results( loEx, lnCodError_Esperado ) + + CATCH TO loEx + THIS.Evaluate_results( loEx, lnCodError_Esperado ) + + FINALLY + USE IN (SELECT("ARCHIVOBIN_IN")) + USE IN (SELECT("TABLABIN")) + STORE NULL TO loModulo, loCnv + RELEASE loModulo, loCnv + ENDTRY + + ENDFUNC + + +ENDDEFINE diff --git a/TESTS/ft__foxbin2prg__c_conversor_prg_a_bin.prg b/TESTS/ft__foxbin2prg__c_conversor_prg_a_bin.prg new file mode 100644 index 0000000..4855bcf --- /dev/null +++ b/TESTS/ft__foxbin2prg__c_conversor_prg_a_bin.prg @@ -0,0 +1,129 @@ +DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_bin AS FxuTestCase OF FxuTestCase.prg + + #IF .F. + LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_bin OF ft__foxbin2prg__c_conversor_prg_a_bin.PRG + #ENDIF + + #DEFINE CR_LF CHR(13) + CHR(10) + #DEFINE C_CR CHR(13) + #DEFINE C_LF CHR(10) + #DEFINE C_TAB CHR(9) + icObj = NULL + + + ******************************************************************************************************************************************* + FUNCTION SETUP + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + *LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + *DOEVENTS FORCE + SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG') + oFXU_LIB.setup_comun() + + *THIS.icObj = NEWOBJECT("c_conversor_base", "FOXBIN2PRG.PRG") + *loObj = THIS.icObj + *loObj.l_Test = .F. + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION TearDown + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + THIS.icObj = NULL + + IF VARTYPE(oFXU_LIB) = "O" + oFXU_LIB.teardown_comun() + oFXU_LIB = NULL + ENDIF + RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + RELEASE oFXU_LIB + CLOSE PROCEDURES + CLEAR RESOURCES + SYS(1104) + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Evaluate_results + LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado + + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + + IF PCOUNT() = 0 + THIS.messageout( "* Support method, not a valid test." ) + RETURN .T. + ENDIF + + IF ISNULL(toEx) + *-- Visualización de valores + THIS.messageout( ' CodError: ' + TRANSFORM(tnCodError_Esperado) ) + + + *-- Evaluación de valores + *THIS.assertequals( '[' + tcMemo_Esperado + ']', '[' + tcMemo_Salida + ']', "Contenido del Memo de PROCEDURE" ) + + ELSE + *-- Evaluación de errores + THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) ) + THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) ) + THIS.messageout( TRANSFORM(toEx.LINECONTENTS) ) + + THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' ) + ENDIF + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaLibreria_PROCEDURE_IN_LPARAMETERS_VC2_y_NoDevolverErrores + LOCAL lnCodError, lnCodError_Esperado ; + , lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ; + , loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ; + , loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ; + , loEx AS EXCEPTION + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + + TRY + loEx = NULL + loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG") + *loCnv.l_Debug = .F. + *loCnv.l_ShowErrors = .F. + *loCnv.l_Test = .T. + + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lc_File = 'PROCEDURE_IN_LPARAMETERS.VC2' + lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) + lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) + lnCodError_Esperado = 0 + + oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) + + loCnv.Ejecutar( lc_OutputFile, '', '', '', '1', '0', '0', '', '', .T. ) + *loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) + THIS.Evaluate_results( loEx, lnCodError_Esperado ) + + CATCH TO loEx + THIS.Evaluate_results( loEx, lnCodError_Esperado ) + + FINALLY + USE IN (SELECT("ARCHIVOBIN_IN")) + USE IN (SELECT("TABLABIN")) + STORE NULL TO loModulo, loCnv + RELEASE loModulo, loCnv + ENDTRY + + ENDFUNC + + +ENDDEFINE diff --git a/TESTS/ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment.prg b/TESTS/ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment.prg new file mode 100644 index 0000000..1b2416d --- /dev/null +++ b/TESTS/ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment.prg @@ -0,0 +1,127 @@ +DEFINE CLASS ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment AS FxuTestCase OF FxuTestCase.prg + + #IF .F. + LOCAL THIS AS ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment OF ut__foxbin2prg__c_conversor_base__get_SeparatedLineAndComment.PRG + #ENDIF + + #DEFINE C_FB2P_VALUE_I '' + #DEFINE C_FB2P_VALUE_F '' + #DEFINE CR_LF CHR(13) + CHR(10) + #DEFINE C_CR CHR(13) + #DEFINE C_LF CHR(10) + #DEFINE C_TAB CHR(9) + #DEFINE C_PROC 'PROCEDURE' + #DEFINE C_ENDPROC 'ENDPROC' + #DEFINE C_TEXT 'TEXT' + #DEFINE C_ENDTEXT 'ENDTEXT' + #DEFINE C_IF_F '#IF .F.' + #DEFINE C_ENDIF '#ENDIF' + #DEFINE C_DEFINE_CLASS 'DEFINE CLASS' + #DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE' + icObj = NULL + + + ******************************************************************************************************************************************* + FUNCTION SETUP + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG') + oFXU_LIB.setup_comun() + + THIS.icObj = NEWOBJECT("c_conversor_base", "FOXBIN2PRG.PRG") + loObj = THIS.icObj + loObj.l_Test = .T. + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION TearDown + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + THIS.icObj = NULL + + IF VARTYPE(oFXU_LIB) = "O" + oFXU_LIB.teardown_comun() + oFXU_LIB = NULL + ENDIF + RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Evaluate_results + LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado ; + , tcLinea, tcComentario, tcLinea_Esperada, tcComentario_Esperado + + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + + IF PCOUNT() = 0 + THIS.messageout( "* Support method, not a valid test." ) + RETURN .T. + ENDIF + + IF ISNULL(toEx) + *-- Algunos ajustes para mejor visualización de caracteres especiales + tcLinea = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcLinea ) + tcLinea_Esperada = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcLinea_Esperada ) + tcComentario = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcComentario ) + tcComentario_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcComentario_Esperado ) + + + *-- Visualización de valores + THIS.messageout( ' Linea = [' + TRANSFORM(tcLinea) + ']' ) + THIS.messageout( ' Comentario = [' + TRANSFORM(tcComentario) + ']' ) + + + *-- Evaluación de valores + THIS.assertequals( tcLinea_Esperada, tcLinea, "Línea de código" ) + THIS.assertequals( tcComentario_Esperado, tcComentario, "Comentario" ) + + ELSE + *-- Evaluación de errores + THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) ) + THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) ) + THIS.messageout( TRANSFORM(toEx.LINECONTENTS) ) + + THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' ) + ENDIF + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_DevolverSeparados_LineaDeCodigo_y_Valor + LOCAL lnCodError, lcMenError, lnCodError_Esperado ; + , lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado ; + , loEx AS EXCEPTION + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + loEx = NULL + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lcComentario = ' con algunos comentarios ' + lcLinea = ' esta es una linea de código ' + lcLineaOriginal = lcLinea + '&' + '&' + lcComentario + + *-- DATOS ESPERADOS + STORE 0 TO lnCodError_Esperado + lcLinea_Esperada = lcLinea + lcComentario_Esperado = lcComentario + + *-- TEST + loObj.get_SeparatedLineAndComment( @lcLineaOriginal, @lcComentario ) + + THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @lcLinea_Esperada, @lcComentario_Esperado ) + + ENDFUNC + + +ENDDEFINE diff --git a/TESTS/ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata.prg b/TESTS/ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata.prg new file mode 100644 index 0000000..5f9d2a7 --- /dev/null +++ b/TESTS/ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata.prg @@ -0,0 +1,180 @@ +DEFINE CLASS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata AS FxuTestCase OF FxuTestCase.prg + + #IF .F. + LOCAL THIS AS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata OF ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata.PRG + #ENDIF + + #DEFINE CR_LF CHR(13) + CHR(10) + #DEFINE C_CR CHR(13) + #DEFINE C_LF CHR(10) + #DEFINE C_TAB CHR(9) + icObj = NULL + + + ******************************************************************************************************************************************* + FUNCTION SETUP + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG') + oFXU_LIB.setup_comun() + + THIS.icObj = NEWOBJECT("c_conversor_base", "FOXBIN2PRG.PRG") + loObj = THIS.icObj + loObj.l_Test = .T. + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION TearDown + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + THIS.icObj = NULL + + IF VARTYPE(oFXU_LIB) = "O" + oFXU_LIB.teardown_comun() + oFXU_LIB = NULL + ENDIF + RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Evaluate_results + LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado ; + , tcLinea, tcComentario, tlRetorno, tcLinea_Esperada, tcComentario_Esperado, tlRetorno_Esperado + + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + + IF PCOUNT() = 0 + THIS.messageout( "* Support method, not a valid test." ) + RETURN .T. + ENDIF + + IF ISNULL(toEx) + *-- Algunos ajustes para mejor visualización de caracteres especiales + tcLinea = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcLinea ) + tcLinea_Esperada = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcLinea_Esperada ) + tcComentario = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcComentario ) + tcComentario_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcComentario_Esperado ) + + + *-- Visualización de valores + THIS.messageout( ' Linea = [' + TRANSFORM(tcLinea) + ']' ) + THIS.messageout( ' Comentario = [' + TRANSFORM(tcComentario) + ']' ) + THIS.messageout( ' tlRetorno = [' + TRANSFORM(tlRetorno) + ']' ) + + + *-- Evaluación de valores + THIS.assertequals( tcLinea_Esperada, tcLinea, "Línea de código" ) + THIS.assertequals( tcComentario_Esperado, tcComentario, "Comentario" ) + THIS.assertequals( tlRetorno_Esperado, tlRetorno, "Retorno" ) + + ELSE + *-- Evaluación de errores + THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) ) + THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) ) + THIS.messageout( TRANSFORM(toEx.LINECONTENTS) ) + + THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' ) + ENDIF + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_DevolverSeparados_LineaDeCodigo_y_Valor_y_Retornar_False + LOCAL lnCodError, lcMenError, lnCodError_Esperado ; + , lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado, llRetorno, llRetorno_Esperado ; + , loEx AS EXCEPTION + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + loEx = NULL + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lcComentario = ' con algunos comentarios ' + lcLinea = ' esta es una linea de código ' + lcLineaOriginal = lcLinea + '&' + '&' + lcComentario + + *-- DATOS ESPERADOS + STORE 0 TO lnCodError_Esperado + lcLinea_Esperada = lcLinea + lcComentario_Esperado = lcComentario + llRetorno_Esperado = .F. + + *-- TEST + llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLineaOriginal, @lcComentario ) + + THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado ) + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_DevolverSeparados_LineaDeTAG_y_Valor_y_Retornar_False + LOCAL lnCodError, lcMenError, lnCodError_Esperado ; + , lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado, llRetorno, llRetorno_Esperado ; + , loEx AS EXCEPTION + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + loEx = NULL + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lcComentario = ' con algunos comentarios ' + lcLinea = ' * esta es una linea de código ' + lcLineaOriginal = lcLinea + '&' + '&' + lcComentario + lcLineaOriginal = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' ) + + *-- DATOS ESPERADOS + STORE 0 TO lnCodError_Esperado + lcLinea_Esperada = ALLTRIM( lcLinea, 0, CHR(9), ' ' ) + lcComentario_Esperado = lcLinea_Esperada + llRetorno_Esperado = .F. + + *-- TEST + llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLineaOriginal, @lcComentario ) + + THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLineaOriginal, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado ) + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_DevolverSeparados_LineaDeCodigo_y_Valor_y_Retornar_True + LOCAL lnCodError, lcMenError, lnCodError_Esperado ; + , lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado, llRetorno, llRetorno_Esperado ; + , loEx AS EXCEPTION + LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + loEx = NULL + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lcComentario = ' con algunos comentarios ' + lcLinea = ' * esta es una linea de código ' + lcLineaOriginal = lcLinea + '&' + '&' + lcComentario + lcLineaOriginal = LTRIM(lcLineaOriginal, 0, CHR(9), ' ') + + *-- DATOS ESPERADOS + STORE 0 TO lnCodError_Esperado + lcLinea_Esperada = lcLinea + lcComentario_Esperado = LTRIM(lcComentario) + llRetorno_Esperado = .T. + + *-- TEST + llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLineaOriginal, @lcComentario ) + + THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado ) + + ENDFUNC + + +ENDDEFINE diff --git a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg index e8ae7fc..7dc304e 100644 --- a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg +++ b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg @@ -87,7 +87,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O THIS.messageout( 'l_Recompile: ' + TRANSFORM(loFB2P_Esperado.l_Recompile) ) THIS.messageout( 'l_NoTimestamps: ' + TRANSFORM(loFB2P_Esperado.l_NoTimestamps) ) THIS.messageout( 'l_ClearUniqueID: ' + TRANSFORM(loFB2P_Esperado.l_ClearUniqueID) ) - THIS.messageout( 'l_Debug: ' + TRANSFORM(loFB2P_Esperado.l_Debug) ) + THIS.messageout( 'n_Debug: ' + TRANSFORM(loFB2P_Esperado.n_Debug) ) THIS.messageout( 'n_ExtraBackupLevels: ' + TRANSFORM(loFB2P_Esperado.n_ExtraBackupLevels) ) THIS.messageout( 'l_OptimizeByFilestamp: ' + TRANSFORM(loFB2P_Esperado.l_OptimizeByFilestamp) ) @@ -105,7 +105,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O THIS.assertequals( TRANSFORM(loFB2P_Esperado.l_Recompile), TRANSFORM(loFB2P.l_Recompile), '> l_Recompile' ) THIS.assertequals( TRANSFORM(loFB2P_Esperado.l_NoTimestamps), TRANSFORM(loFB2P.l_NoTimestamps), '> l_NoTimestamps' ) THIS.assertequals( TRANSFORM(loFB2P_Esperado.l_ClearUniqueID), TRANSFORM(loFB2P.l_ClearUniqueID), '> l_ClearUniqueID' ) - THIS.assertequals( TRANSFORM(loFB2P_Esperado.l_Debug), TRANSFORM(loFB2P.l_Debug), '> l_Debug' ) + THIS.assertequals( TRANSFORM(loFB2P_Esperado.n_Debug), TRANSFORM(loFB2P.n_Debug), '> n_Debug' ) THIS.assertequals( TRANSFORM(loFB2P_Esperado.n_ExtraBackupLevels), TRANSFORM(loFB2P.n_ExtraBackupLevels), '> n_ExtraBackupLevels' ) THIS.assertequals( TRANSFORM(loFB2P_Esperado.l_OptimizeByFilestamp), TRANSFORM(loFB2P.l_OptimizeByFilestamp), '> l_OptimizeByFilestamp' ) @@ -173,7 +173,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O ADDPROPERTY( loFB2P_Esperado, 'l_Recompile', .T. ) ADDPROPERTY( loFB2P_Esperado, 'l_NoTimestamps', .T. ) ADDPROPERTY( loFB2P_Esperado, 'l_ClearUniqueID', .T. ) - ADDPROPERTY( loFB2P_Esperado, 'l_Debug', .F. ) + ADDPROPERTY( loFB2P_Esperado, 'n_Debug', 0 ) ADDPROPERTY( loFB2P_Esperado, 'n_ExtraBackupLevels', 1 ) ADDPROPERTY( loFB2P_Esperado, 'l_OptimizeByFilestamp', .F. ) *STRTOFILE('', 'TESTS\DATOS_TEST\foxbin2prg.cfg') @@ -226,7 +226,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O ADDPROPERTY( loFB2P_Esperado, 'l_Recompile', .T. ) ADDPROPERTY( loFB2P_Esperado, 'l_NoTimestamps', .F. ) ADDPROPERTY( loFB2P_Esperado, 'l_ClearUniqueID', .F. ) - ADDPROPERTY( loFB2P_Esperado, 'l_Debug', .F. ) + ADDPROPERTY( loFB2P_Esperado, 'n_Debug', 0 ) ADDPROPERTY( loFB2P_Esperado, 'n_ExtraBackupLevels', 0 ) ADDPROPERTY( loFB2P_Esperado, 'l_OptimizeByFilestamp', .F. ) *-- @@ -296,7 +296,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O ADDPROPERTY( loFB2P_Esperado, 'l_Recompile', .T. ) ADDPROPERTY( loFB2P_Esperado, 'l_NoTimestamps', .T. ) ADDPROPERTY( loFB2P_Esperado, 'l_ClearUniqueID', .T. ) - ADDPROPERTY( loFB2P_Esperado, 'l_Debug', .T. ) + ADDPROPERTY( loFB2P_Esperado, 'n_Debug', 1 ) ADDPROPERTY( loFB2P_Esperado, 'n_ExtraBackupLevels', 1 ) ADDPROPERTY( loFB2P_Esperado, 'l_OptimizeByFilestamp', .T. ) *-- @@ -661,13 +661,13 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O *-- DATOS DE ENTRADA STORE 0 TO lnCodError - lcSeteo = 'l_Debug' - leValorEsperado = .F. + lcSeteo = 'n_Debug' + leValorEsperado = 0 *-- TEST loFB2P.EvaluarConfiguracion() - leValor = loFB2P.l_Debug + leValor = loFB2P.n_Debug CATCH TO loEx @@ -699,13 +699,13 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O *-- DATOS DE ENTRADA STORE 0 TO lnCodError - lcSeteo = 'l_Debug' - leValorEsperado = .F. + lcSeteo = 'n_Debug' + leValorEsperado = 0 *-- TEST loFB2P.EvaluarConfiguracion() - leValor = loFB2P.l_Debug + leValor = loFB2P.n_Debug CATCH TO loEx @@ -737,13 +737,13 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O *-- DATOS DE ENTRADA STORE 0 TO lnCodError - lcSeteo = 'l_Debug' - leValorEsperado = .T. + lcSeteo = 'n_Debug' + leValorEsperado = 1 *-- TEST loFB2P.EvaluarConfiguracion() - leValor = loFB2P.l_Debug + leValor = loFB2P.n_Debug CATCH TO loEx diff --git a/foxbin2prg.exe b/foxbin2prg.exe index cd9127a197daeb16c3e5611574de48db33fd0b5b..c5c2cf8081e192d87995af6a197b0f76dd39d655 100644 GIT binary patch delta 12557 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 T1_umtxr$lkh_|)A+ado4>#AQV delta 12605 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 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 1cc567e..1d47dd7 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -5113,8 +5113,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ln_AT_Cmt = AT( '&'+'&', tcLine) IF ln_AT_Cmt > 0 - *tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - tcComment = SUBSTR( tcLine, ln_AT_Cmt + 2 ) + tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios de la derecha de la línea de código ENDIF @@ -5340,11 +5339,10 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION * NOTA: Recordar que esta función suele usarse junto a Set_Line(), que quita TABS y espacios a la izquierda. *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, tcComment - LOCAL lllineIsOnlyCommentAndNoMetadata, ln_AT_Cmt, lcStr + LOCAL lllineIsOnlyCommentAndNoMetadata, ln_AT_Cmt WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' .get_SeparatedLineAndComment( @tcLine, @tcComment ) - *lcStr = LTRIM( tcLine, 0, CHR(9), ' ' ) DO CASE CASE LEFT(tcLine,2) == '*<' @@ -5356,7 +5354,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ENDCASE ENDWITH - RELEASE tcLine, tcComment, ln_AT_Cmt, lcStr + RELEASE tcLine, tcComment, ln_AT_Cmt RETURN lllineIsOnlyCommentAndNoMetadata ENDPROC @@ -15333,8 +15331,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM ln_AT_Cmt = AT( '&'+'&', tcLine) IF ln_AT_Cmt > 0 - *tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - tcComment = SUBSTR( tcLine, ln_AT_Cmt + 2 ) + tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios de la derecha de la línea de código ENDIF @@ -15421,8 +15418,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION ln_AT_Cmt = AT( '&'+'&', tcLine) IF ln_AT_Cmt > 0 - *tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - tcComment = SUBSTR( tcLine, ln_AT_Cmt + 2 ) + tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios de la derecha de la línea de código ENDIF