Files
foxbin2prg/TESTS/ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion.prg
fernando 4b2acb52cd Changeset: 165 v.1.19.11
- Optimizaciones WITH/ENDWITH con una ganancia de velocidad de conversión de hasta un 16% más rápido
- Arreglo bug: Solo se contemplaba un nivel de #IF, dando un error si se enidaban más niveles
- Arreglo bug: Al regenerar el PJX no siempre se establece el directorio por defecto correctamente
- Agregado test unitario de FoxUnit para comprobar el arreglo del #IF anidado
2014-02-13 20:41:26 +01:00

162 lines
5.0 KiB
Plaintext

DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion OF ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion.PRG
#ENDIF
#DEFINE C_PROC 'PROCEDURE'
#DEFINE C_ENDPROC 'ENDPROC'
#DEFINE C_TEXT 'TEXT'
#DEFINE C_ENDTEXT 'ENDTEXT'
#DEFINE C_IF_F '#IF'
#DEFINE C_ENDIF '#ENDIF'
icObj = NULL
*******************************************************************************************************************************************
FUNCTION Setup
THIS.icObj = NEWOBJECT("c_conversor_prg_a_bin", "FOXBIN2PRG.PRG")
ENDFUNC
*******************************************************************************************************************************************
FUNCTION TearDown
THIS.icObj = NULL
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Evaluate_results
LPARAMETERS taExpected_Pos, taPos, tnPos_Count
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
THIS.messageout( "Pares de posiciones esperados: " + TRANSFORM(tnPos_Count) )
FOR I = 1 TO tnPos_Count
THIS.messageout( "Posición de Inicio/Fin esperados: " + TRANSFORM(taExpected_Pos(I,1)) + ',' + TRANSFORM(taExpected_Pos(I,2)) )
ENDFOR
THIS.assertequals( ALEN(taExpected_Pos,1), ALEN(taPos,1), "Posición de Inicio/Fin" )
FOR I = 1 TO tnPos_Count
THIS.assertequals( TRANSFORM(taExpected_Pos(I,1)) + ',' + TRANSFORM(taExpected_Pos(I,2)) ;
, TRANSFORM(taPos(I,1)) + ',' + TRANSFORM(taPos(I,2)) ;
, "Posición de Inicio/Fin" )
ENDFOR
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(2,2)
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
*-- Input and expected params
STORE '' TO lcMethod
laExpected_Pos(1,1) = 3
laExpected_Pos(1,2) = 5
laExpected_Pos(2,1) = 7
laExpected_Pos(2,2) = 9
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
<<C_PROC>> myMethod_B
*-- Code Block
<<C_IF_F>>
<<C_TEXT>>
<<C_ENDIF>>
*-- Code Block
<<C_IF_F>>
<<C_ENDTEXT>>
<<C_ENDIF>>
<<C_ENDPROC>>
ENDTEXT
lnLineas = ALINES( laLineas, lcMethod )
*-- Test
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_Externo_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
*-- Input and expected params
STORE '' TO lcMethod
laExpected_Pos(1,1) = 3
laExpected_Pos(1,2) = 9
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
<<C_PROC>> myMethod_B
*-- Code Block
<<C_IF_F>>
<<C_IF_F>>
<<C_TEXT>>
*-- Code Block
<<C_ENDTEXT>>
<<C_ENDIF>>
<<C_ENDIF>>
<<C_ENDPROC>>
ENDTEXT
lnLineas = ALINES( laLineas, lcMethod )
*-- Test
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_TEXT_ENDTEXT_CuandoCodigoCon_TEXT_ENDTEXT_predominante_esEvaluado
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(2,2)
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
*-- Input and expected params
STORE '' TO lcMethod
laExpected_Pos(1,1) = 3
laExpected_Pos(1,2) = 5
laExpected_Pos(2,1) = 7
laExpected_Pos(2,2) = 9
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
<<C_PROC>> myMethod_B
*-- Code Block
<<C_TEXT>>
<<C_IF_F>>
<<C_ENDTEXT>>
*-- Code Block
<<C_TEXT>>
<<C_ENDIF>>
<<C_ENDTEXT>>
<<C_ENDPROC>>
ENDTEXT
lnLineas = ALINES( laLineas, lcMethod )
*-- Test
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
ENDFUNC
ENDDEFINE