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 cd9127a..c5c2cf8 100644 Binary files a/foxbin2prg.exe and b/foxbin2prg.exe differ 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