Changeset: 52 Changeset: 52 Arreglo definitivo del ENDPROC sobrante por tener un ENTER demás luego del ENDPROC
This commit is contained in:
175
TESTS/ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo.prg
Normal file
175
TESTS/ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo.prg
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
DEFINE CLASS ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo AS FxuTestCase OF FxuTestCase.prg
|
||||||
|
|
||||||
|
#IF .F.
|
||||||
|
LOCAL THIS AS ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo OF ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo.PRG
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
#DEFINE C_FB2P_VALUE_I '<fb2p_value>'
|
||||||
|
#DEFINE C_FB2P_VALUE_F '</fb2p_value>'
|
||||||
|
#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_bin_a_prg", "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, tcMemo, tcMemo_Salida, tcMemo_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)
|
||||||
|
*-- Algunos ajustes para mejor visualizaci<63>n de caracteres especiales
|
||||||
|
tcMemo = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo )
|
||||||
|
tcMemo_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Esperado )
|
||||||
|
tcMemo_Salida = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Salida )
|
||||||
|
|
||||||
|
*-- Visualizaci<63>n de valores
|
||||||
|
THIS.messageout( ' Memo de entrada:' )
|
||||||
|
THIS.messageout( '[' + tcMemo + ']' )
|
||||||
|
|
||||||
|
THIS.messageout( REPLICATE('-',80) )
|
||||||
|
|
||||||
|
THIS.messageout( ' Memo esperado:' )
|
||||||
|
THIS.messageout( '[' + tcMemo_Esperado + ']' )
|
||||||
|
|
||||||
|
|
||||||
|
*-- Evaluaci<63>n de valores
|
||||||
|
THIS.assertequals( '[' + tcMemo_Esperado + ']', '[' + tcMemo_Salida + ']', "Contenido del Memo de PROCEDURE" )
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
*-- Evaluaci<63>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_evaluarUnMemo_PROCEDURE_YQuitarleLaCabecera_PROCEDURE_YElPie_ENDPROC_DejandoSoloElContenido
|
||||||
|
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||||
|
, lcMemo, lcMemo_Salida, lcMemo_Esperado ;
|
||||||
|
, loEx AS EXCEPTION
|
||||||
|
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG"
|
||||||
|
loObj = THIS.icObj
|
||||||
|
loEx = NULL
|
||||||
|
|
||||||
|
*-- DATOS DE ENTRADA
|
||||||
|
STORE 0 TO lnCodError
|
||||||
|
|
||||||
|
TEXT TO lcMemo TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
|
<<'PROCEDURE miMetodo'>>
|
||||||
|
Page1.Name = "Page1"
|
||||||
|
<<'ENDPROC'>>
|
||||||
|
|
||||||
|
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
*-- DATOS ESPERADOS
|
||||||
|
STORE 0 TO lnCodError_Esperado
|
||||||
|
|
||||||
|
TEXT TO lcMemo_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
|
<<C_TAB>><<C_TAB>>Page1.Name = "Page1"
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
|
||||||
|
*-- TEST
|
||||||
|
lcMemo_Salida = loObj.IndentarMemo( @lcMemo, C_TAB+C_TAB )
|
||||||
|
|
||||||
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcMemo, @lcMemo_Salida, @lcMemo_Esperado )
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************************************
|
||||||
|
FUNCTION Deberia_evaluarUnMemo_PROCEDURE_YDarUnError_1098_Por_ProcedimientoSinCerrar
|
||||||
|
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||||
|
, lcMemo, lcMemo_Salida, lcMemo_Esperado ;
|
||||||
|
, loEx AS EXCEPTION
|
||||||
|
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG"
|
||||||
|
loObj = THIS.icObj
|
||||||
|
loEx = NULL
|
||||||
|
|
||||||
|
*-- DATOS DE ENTRADA
|
||||||
|
STORE 0 TO lnCodError
|
||||||
|
|
||||||
|
TEXT TO lcMemo TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
|
<<'PROCEDURE miMetodo'>>
|
||||||
|
Page1.Name = "Page1"
|
||||||
|
|
||||||
|
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
*-- DATOS ESPERADOS
|
||||||
|
STORE 0 TO lnCodError_Esperado
|
||||||
|
lnCodError_Esperado = 1098
|
||||||
|
|
||||||
|
TEXT TO lcMemo_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
|
<<C_TAB>><<C_TAB>>Page1.Name = "Page1"
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
|
||||||
|
*-- TEST
|
||||||
|
TRY
|
||||||
|
lcMemo_Salida = loObj.IndentarMemo( @lcMemo, C_TAB+C_TAB )
|
||||||
|
CATCH TO loEx
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcMemo, @lcMemo_Salida, @lcMemo_Esperado )
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
@@ -4823,7 +4823,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
*-- Genero el m<>todo SIN indentar, ya que se hace luego
|
*-- Genero el m<>todo SIN indentar, ya que se hace luego
|
||||||
*TEXT TO tcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
*tcMethods2 = tcMethods
|
||||||
|
*TEXT TO tcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||||
* <<'PROCEDURE'>> <<tcMethodName>>
|
* <<'PROCEDURE'>> <<tcMethodName>>
|
||||||
* <<THIS.IndentarMemo( taCode(taMethods(I,2)) )>>
|
* <<THIS.IndentarMemo( taCode(taMethods(I,2)) )>>
|
||||||
* <<'ENDPROC'>>
|
* <<'ENDPROC'>>
|
||||||
@@ -4832,7 +4833,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + tcMethodName
|
tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + tcMethodName
|
||||||
tcMethods = tcMethods + CR_LF + THIS.IndentarMemo( taCode(taMethods(I,2)) )
|
tcMethods = tcMethods + CR_LF + THIS.IndentarMemo( taCode(taMethods(I,2)) )
|
||||||
tcMethods = tcMethods + CR_LF + 'ENDPROC'
|
tcMethods = tcMethods + CR_LF + 'ENDPROC'
|
||||||
tcMethods = tcMethods + CR_LF
|
|
||||||
ENDFOR
|
ENDFOR
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -5073,7 +5073,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
LPARAMETERS tcMethod, tcIndentation
|
LPARAMETERS tcMethod, tcIndentation
|
||||||
*-- INDENTA EL C<>DIGO DE UN M<>TODO DADO Y QUITA LA CABECERA DE M<>TODO (PROCEDURE/ENDPROC) SI LA ENCUENTRA
|
*-- INDENTA EL C<>DIGO DE UN M<>TODO DADO Y QUITA LA CABECERA DE M<>TODO (PROCEDURE/ENDPROC) SI LA ENCUENTRA
|
||||||
TRY
|
TRY
|
||||||
LOCAL I, lcMethod, llProcedure, lnInicio, lnFin
|
LOCAL I, X, lcMethod, llProcedure, lnInicio, lnFin, laLineas(1)
|
||||||
lcMethod = ''
|
lcMethod = ''
|
||||||
llProcedure = ( LEFT(tcMethod,10) == 'PROCEDURE ' ;
|
llProcedure = ( LEFT(tcMethod,10) == 'PROCEDURE ' ;
|
||||||
OR LEFT(tcMethod,17) == 'HIDDEN PROCEDURE ' ;
|
OR LEFT(tcMethod,17) == 'HIDDEN PROCEDURE ' ;
|
||||||
@@ -5083,6 +5083,24 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
IF VARTYPE(tcIndentation) # 'C'
|
IF VARTYPE(tcIndentation) # 'C'
|
||||||
tcIndentation = ''
|
tcIndentation = ''
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
*-- Quito las l<>neas en blanco luego del final del ENDPROC
|
||||||
|
X = 0
|
||||||
|
FOR I = lnFin TO 1 STEP -1
|
||||||
|
IF NOT EMPTY(laLineas(I)) && <20>ltima l<>nea de c<>digo
|
||||||
|
IF LEFT( laLineas(I), 10 ) <> C_ENDPROC
|
||||||
|
ERROR 'Procedimiento sin cerrar. La <20>ltima l<>nea de c<>digo debe ser ENDPROC. [' + laLineas(1) + ']'
|
||||||
|
ENDIF
|
||||||
|
EXIT
|
||||||
|
ENDIF
|
||||||
|
X = X + 1
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
IF X > 0
|
||||||
|
lnFin = lnFin - X
|
||||||
|
DIMENSION laLineas(lnFin)
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
*-- Si encuentra la cabecera de un PROCEDURE, la saltea
|
*-- Si encuentra la cabecera de un PROCEDURE, la saltea
|
||||||
IF llProcedure
|
IF llProcedure
|
||||||
@@ -5377,26 +5395,29 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
LPARAMETERS tcMethods
|
LPARAMETERS tcMethods
|
||||||
|
|
||||||
*-- Finalmente, todos los m<>todos los ordeno y escribo juntos
|
*-- Finalmente, todos los m<>todos los ordeno y escribo juntos
|
||||||
LOCAL laMethods(1), laCode(1), lnMethodCount, I
|
LOCAL laMethods(1), laCode(1), lnMethodCount, I, lcMethods, lcMethods2
|
||||||
|
|
||||||
IF NOT EMPTY(tcMethods)
|
IF NOT EMPTY(tcMethods)
|
||||||
|
STORE '' TO lcMethods, lcMethods2
|
||||||
DIMENSION laMethods(1,3)
|
DIMENSION laMethods(1,3)
|
||||||
THIS.SortMethod( @tcMethods, @laMethods, @laCode, '', @lnMethodCount )
|
THIS.SortMethod( @tcMethods, @laMethods, @laCode, '', @lnMethodCount )
|
||||||
|
|
||||||
FOR I = 1 TO lnMethodCount
|
FOR I = 1 TO lnMethodCount
|
||||||
*-- Genero los m<>todos indentados
|
*-- Genero los m<>todos indentados
|
||||||
*TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
*TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||||
* <<C_TAB>><<laMethods(I,3)>>PROCEDURE <<laMethods(I,1)>>
|
* <<C_TAB>><<laMethods(I,3)>>PROCEDURE <<laMethods(I,1)>>
|
||||||
* <<THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )>>
|
* <<THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )>>
|
||||||
* <<C_TAB>>ENDPROC
|
* <<C_TAB>>ENDPROC
|
||||||
|
|
||||||
*ENDTEXT
|
*ENDTEXT
|
||||||
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
|
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
|
||||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + C_TAB + laMethods(I,3) + 'PROCEDURE ' + laMethods(I,1)
|
lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + 'PROCEDURE ' + laMethods(I,1)
|
||||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )
|
lcMethods = lcMethods + CR_LF + THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )
|
||||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + C_TAB + 'ENDPROC'
|
lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC'
|
||||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF
|
lcMethods = lcMethods + CR_LF
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
|
C_FB2PRG_CODE = C_FB2PRG_CODE + lcMethods
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
@@ -5411,8 +5432,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments
|
EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods
|
LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods, lcMethods2
|
||||||
STORE '' TO lcMethod, lcProcDef, lcMethods
|
STORE '' TO lcMethod, lcProcDef, lcMethods, lcMethods2
|
||||||
|
|
||||||
IF tnMethodCount > 0 THEN
|
IF tnMethodCount > 0 THEN
|
||||||
FOR I = 1 TO tnMethodCount
|
FOR I = 1 TO tnMethodCount
|
||||||
@@ -5448,7 +5469,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
*-- C<>digo del m<>todo
|
*-- C<>digo del m<>todo
|
||||||
*TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
*TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||||
* <<THIS.IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9) )>>
|
* <<THIS.IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9) )>>
|
||||||
* <<C_TAB>>ENDPROC
|
* <<C_TAB>>ENDPROC
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user