Changeset: 49 Changeset: 49 Solución bugs, algunas diferencias en campos memo, creación de unos cuántos casos de prueba automatizados con FoxUnit

This commit is contained in:
fernando
2013-12-07 16:35:36 +01:00
21 changed files with 5088 additions and 1810 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,135 @@
*-- M<>dulo: fxu_lib_objetos_y_funciones_de_soporte.PRG
*-- Autor: Fernando D. Bozzo - 30/11/2013
*-- Detalle: LIBRER<45>A DE SOPORTE DE LOS TESTS PARA OBJETOS Y FUNCIONES DE FOXBIN2PRG
*----------------------------------------------------------------------------------------
DEFINE CLASS CL_FXU_CONFIG AS CUSTOM
#IF .F.
LOCAL THIS AS CL_FXU_CONFIG OF 'fxu_lib_objetos_y_funciones_de_soporte.PRG'
#ENDIF
_MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="cpath" display="cPath"/>] ;
+ [<memberdata name="coldpath" display="cOldPath"/>] ;
+ [<memberdata name="cpathdatosreadonly" display="cPathDatosReadOnly"/>] ;
+ [<memberdata name="cpathdatostest" display="cPathDatosTest"/>] ;
+ [<memberdata name="copiararchivosparatest" display="copiarArchivosParaTest"/>] ;
+ [<memberdata name="csetdate" display="cSetDate"/>] ;
+ [<memberdata name="mejorarpresentacioncaracteresespeciales" display="mejorarPresentacionCaracteresEspeciales"/>] ;
+ [<memberdata name="prepararobjetoreg_scx" display="prepararObjetoReg_SCX"/>] ;
+ [<memberdata name="prepararobjetoreg_vcx" display="prepararObjetoReg_VCX"/>] ;
+ [</VFPData>]
cOldPath = ''
cPath = 'FOXUNIT;TESTS;TESTS\DATOS_TEST'
cPathDatosReadOnly = 'TESTS\DATOS_READONLY'
cPathDatosTest = 'TESTS\DATOS_TEST'
cSetDate = ''
*----------------------------------------------------------------------------------------
PROCEDURE INIT
THIS.cSetDate = SET("Date")
SET DATE TO YMD
SET HOURS TO 24
SET SAFETY OFF
SET TABLEPROMPT OFF
SET TALK OFF
THIS.cOldPath = SET("Path")
SET PATH TO (THIS.cPath)
ENDPROC
*----------------------------------------------------------------------------------------
PROCEDURE DESTROY
SET PATH TO (THIS.cOldPath)
SET DATE (THIS.cSetDate)
ENDPROC
*----------------------------------------------------------------------------------------
PROCEDURE SETUP_COMUN
ERASE (FORCEPATH( '*.*', THIS.cPathDatosTest ) )
ENDPROC
*----------------------------------------------------------------------------------------
PROCEDURE TEARDOWN_COMUN
USE IN (SELECT("TABLABIN"))
ENDPROC
*----------------------------------------------------------------------------------------
PROCEDURE copiarArchivosParaTest
LPARAMETERS tcFileSpec
COPY FILE (FORCEPATH( tcFileSpec, THIS.cPathDatosReadOnly )) TO (FORCEPATH( tcFileSpec, THIS.cPathDatosTest ))
ENDPROC
*----------------------------------------------------------------------------------------
FUNCTION mejorarPresentacionCaracteresEspeciales
LPARAMETERS tcText
RETURN STRTRAN( ;
STRTRAN( ;
STRTRAN( ;
STRTRAN( ;
STRTRAN( ;
STRTRAN( tcText, CHR(13)+CHR(10), '<CRLF>' ) ;
, CHR(13), '<CR>' ) ;
, CHR(10), '<LF>' ) ;
, CHR(9), '<TAB>' ) ;
, ' ', '<27>' ) ;
, '<CRLF>', '<CRLF>'+CHR(13)+CHR(10) )
ENDFUNC
*----------------------------------------------------------------------------------------
PROCEDURE prepararObjetoReg_SCX
LPARAMETERS toReg, tcClass, tcParent, tcObjName
toReg = CREATEOBJECT("EMPTY")
ADDPROPERTY( toReg, 'Class', tcClass )
ADDPROPERTY( toReg, 'Parent', tcParent )
ADDPROPERTY( toReg, 'objName', tcObjName )
ADDPROPERTY( toReg, 'Reserved1', '' )
ADDPROPERTY( toReg, 'Reserved2', '' )
ADDPROPERTY( toReg, 'Reserved3', '' )
ADDPROPERTY( toReg, 'Reserved4', '' )
ADDPROPERTY( toReg, 'Reserved5', '' )
ADDPROPERTY( toReg, 'Reserved6', '' )
ADDPROPERTY( toReg, 'Reserved7', '' )
ADDPROPERTY( toReg, 'Reserved8', '' )
ADDPROPERTY( toReg, 'Properties', '' )
ADDPROPERTY( toReg, 'Protected', '' )
ADDPROPERTY( toReg, 'Methods', '' )
ENDPROC
*----------------------------------------------------------------------------------------
PROCEDURE prepararObjetoReg_VCX
LPARAMETERS toReg, tcClass, tcParent, tcObjName
toReg = CREATEOBJECT("EMPTY")
ADDPROPERTY( toReg, 'Class', tcClass )
ADDPROPERTY( toReg, 'Parent', tcParent )
ADDPROPERTY( toReg, 'objName', tcObjName )
ADDPROPERTY( toReg, 'Reserved1', '' )
ADDPROPERTY( toReg, 'Reserved2', '' )
ADDPROPERTY( toReg, 'Reserved3', '' )
ADDPROPERTY( toReg, 'Reserved4', '' )
ADDPROPERTY( toReg, 'Reserved5', '' )
ADDPROPERTY( toReg, 'Reserved6', '' )
ADDPROPERTY( toReg, 'Reserved7', '' )
ADDPROPERTY( toReg, 'Reserved8', '' )
ADDPROPERTY( toReg, 'Properties', '' )
ADDPROPERTY( toReg, 'Protected', '' )
ADDPROPERTY( toReg, 'Methods', '' )
ENDPROC
ENDDEFINE

362
TESTS/ut__foxbin2prg.prg Normal file
View File

@@ -0,0 +1,362 @@
DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg OF ut__foxbin2prg.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_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'
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Evaluate_results
LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado, tc_OutputFile, tcParent, tcClass, tcObjName, toReg_Esperado
#IF .F.
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
#ENDIF
IF PCOUNT() = 0
THIS.messageout( "* Support method, not a valid test." )
RETURN .T.
ENDIF
LOCAL lnCodError, lcTipoBinario, toReg ;
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG"
*-- TEST
TRY
lcTipoBinario = UPPER( JUSTEXT( tc_OutputFile ) )
IF FILE(tc_OutputFile)
SELECT 0
USE (tc_OutputFile) SHARED NOUPDATE ALIAS TABLABIN
ELSE
ERROR 'No se encontr<74> el archivo "' + tc_OutputFile + '"'
ENDIF
IF EMPTY(tcParent) AND EMPTY(tcClass) AND EMPTY(tcObjName)
DO CASE
CASE lcTipoBinario = 'SCX'
LOCATE FOR PLATFORM=="COMMENT " AND UniqueID=="Screen "
CASE lcTipoBinario = 'VCX'
LOCATE FOR PLATFORM=="COMMENT " AND UniqueID=="Class "
ENDCASE
IF NOT FOUND()
ERROR 'No se encontr<74> el registro de cabecera "' + UniqueID + '"'
ENDIF
ELSE
LOCATE FOR CLASS==tcClass AND PARENT==tcParent AND objName==tcObjName
IF NOT FOUND()
ERROR 'No se encontr<74> el registro para CLASS=="' + tcClass + '" AND PARENT=="' + tcParent + '" AND objName=="' + tcObjName + '"'
ENDIF
ENDIF
SCATTER MEMO NAME toReg
CATCH TO toEx
FINALLY
USE IN (SELECT("TABLABIN"))
ENDTRY
IF ISNULL(toEx)
LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, laPropsAndValues_Esperado(1,2), lnPropsAndValues_Count_Esperado ;
, lnPropsAndComments_Count, lnPropsAndComments_Count_Esperado, laPropsAndComments(1,2), laPropsAndComments_Esperado(1,2) ;
, laProtected(1), lnProtected_Count, laProtected_Esperado(1), lnProtected_Count_Esperado ;
, laMethods(1,2), lnMethods_Count, laMethods_Esperado(1,2), lnMethods_Count_Esperado, lcExtraData
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG"
*-- Algunos ajustes para mejor visualizaci<63>n de caracteres especiales
*tcPropValue = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcPropValue )
loObj = NEWOBJECT("c_conversor_bin_a_prg", "FOXBIN2PRG.PRG")
*-- Reserved3
loObj.get_PropsAndCommentsFrom_RESERVED3( toReg.RESERVED3, .F., @laPropsAndComments, @lnPropsAndComments_Count, '' )
loObj.get_PropsAndCommentsFrom_RESERVED3( toReg_Esperado.RESERVED3, .F., @laPropsAndComments_Esperado, @lnPropsAndComments_Count_Esperado, '' )
*-- Properties
loObj.get_PropsAndValuesFrom_PROPERTIES( toReg.PROPERTIES, 0, @laPropsAndValues, @lnPropsAndValues_Count, '' )
loObj.get_PropsAndValuesFrom_PROPERTIES( toReg_Esperado.PROPERTIES, 0, @laPropsAndValues_Esperado, @lnPropsAndValues_Count_Esperado, '' )
*-- Protected
loObj.get_PropsFrom_PROTECTED( toReg.PROTECTED, .F., @laProtected, @lnProtected_Count, '' )
loObj.get_PropsFrom_PROTECTED( toReg_Esperado.PROTECTED, .F., @laProtected_Esperado, @lnProtected_Count_Esperado, '' )
*-- Methods
loObj.get_ADD_OBJECT_METHODS( toReg, toReg, '', @laMethods, '', @lnMethods_Count )
loObj.get_ADD_OBJECT_METHODS( toReg_Esperado, toReg_Esperado, '', @laMethods_Esperado, '', @lnMethods_Count_Esperado )
lcExtraData = tcParent + '.' + tcObjName + ' (' + tcClass + ')'
*-- Visualizaci<63>n de valores
THIS.messageout( LOWER(PROGRAM(PROGRAM(-1)-1)) )
THIS.messageout( 'PROPERTIES esperadas para ' + lcExtraData + ': ' ;
+ TRANSFORM(lnPropsAndValues_Count_Esperado) + ' (Tama<6D>o = ' + TRANSFORM(LEN(toReg_Esperado.PROPERTIES)) + ' bytes)' )
*THIS.messageout( REPLICATE('-',80) )
*FOR I = 1 TO lnPropsAndValues_Count_Esperado
* THIS.messageout( 'PropName = ' + TRANSFORM(laPropsAndValues_Esperado(I,1)) )
*ENDFOR
THIS.messageout( 'PROTECTED esperadas para ' + lcExtraData + ': ' ;
+ TRANSFORM(lnProtected_Count_Esperado) + ' (Tama<6D>o = ' + TRANSFORM(LEN(toReg_Esperado.PROTECTED)) + ' bytes)' )
*THIS.messageout( REPLICATE('-',80) )
*FOR I = 1 TO lnProtected_Count_Esperado
* THIS.messageout( 'PropName = ' + TRANSFORM(laProtected_Esperado(I,1)) )
*ENDFOR
THIS.messageout( 'RESERVED3 esperadas para ' + lcExtraData + ': ' ;
+ TRANSFORM(lnPropsAndComments_Count_Esperado) + ' (Tama<6D>o = ' + TRANSFORM(LEN(toReg_Esperado.RESERVED3)) + ' bytes)' )
*THIS.messageout( REPLICATE('-',80) )
*FOR I = 1 TO lnPropsAndComments_Count_Esperado
* THIS.messageout( 'PropName = ' + TRANSFORM(laPropsAndComments_Esperado(I,1)) )
*ENDFOR
THIS.messageout( 'METHODS esperadas para ' + lcExtraData + ': ' ;
+ TRANSFORM(lnMethods_Count_Esperado) + ' (Tama<6D>o = ' + TRANSFORM(LEN(toReg_Esperado.METHODS)) + ' bytes)' )
*THIS.messageout( REPLICATE('-',80) )
*FOR I = 1 TO lnMethods_Count_Esperado
* THIS.messageout( 'Name = ' + TRANSFORM(laMethods_Esperado(I,1)) )
*ENDFOR
THIS.messageout( 'OLE2 esperado para ' + lcExtraData + ': ' + TRANSFORM(toReg_Esperado.OLE2) )
THIS.messageout( 'Checksum OLE esperado para ' + lcExtraData + ': ' + TRANSFORM(SYS(2007, toReg_Esperado.OLE)) )
*-- Evaluaci<63>n de valores
THIS.assertequals( toReg_Esperado.Reserved1, toReg.Reserved1, "Valor de RESERVED1 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved1), LEN(toReg.Reserved1), "Tama<6D>o de RESERVED1 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.Reserved2, toReg.Reserved2, "Valor de RESERVED2 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved2), LEN(toReg.Reserved2), "Tama<6D>o de RESERVED2 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.Reserved4, toReg.Reserved4, "Valor de RESERVED4 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved4), LEN(toReg.Reserved4), "Tama<6D>o de RESERVED4 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.Reserved5, toReg.Reserved5, "Valor de RESERVED5 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved5), LEN(toReg.Reserved5), "Tama<6D>o de RESERVED5 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.Reserved6, toReg.Reserved6, "Valor de RESERVED6 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved6), LEN(toReg.Reserved6), "Tama<6D>o de RESERVED6 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.Reserved7, toReg.Reserved7, "Valor de RESERVED7 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved7), LEN(toReg.Reserved7), "Tama<6D>o de RESERVED7 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.Reserved8, toReg.Reserved8, "Valor de RESERVED8 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.Reserved8), LEN(toReg.Reserved8), "Tama<6D>o de RESERVED8 para " + lcExtraData )
THIS.assertequals( toReg_Esperado.OLE2, toReg.OLE2, "Valor de OLE2 para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.OLE2), LEN(toReg.OLE2), "Tama<6D>o de OLE2 para " + lcExtraData )
THIS.assertequals( SYS(2007, toReg_Esperado.OLE), SYS(2007, toReg.OLE), "Valor de OLE (Checksum) para " + lcExtraData )
THIS.assertequals( LEN(toReg_Esperado.OLE), LEN(toReg.OLE), "Tama<6D>o de OLE para " + lcExtraData )
*-- PROPERTIES
THIS.assertequals( LEN(toReg_Esperado.PROPERTIES), LEN(toReg.PROPERTIES), "Tama<6D>o de PROPERTIES para " + lcExtraData )
THIS.assertequals( lnPropsAndValues_Count_Esperado, lnPropsAndValues_Count, "Cantidad de PROPERTIES para " + lcExtraData )
FOR I = 1 TO lnPropsAndValues_Count_Esperado
THIS.asserttrue( ASCAN( laPropsAndValues, laPropsAndValues_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ;
, ' Comprobaci<63>n de que existe la Property "' + TRANSFORM(laPropsAndValues_Esperado(I,1)) + '"' + " para " + lcExtraData )
ENDFOR
*-- RESERVED3
THIS.assertequals( LEN(toReg_Esperado.RESERVED3), LEN(toReg.RESERVED3), "Tama<6D>o de RESERVED3 para " + lcExtraData )
THIS.assertequals( lnPropsAndComments_Count_Esperado, lnPropsAndComments_Count, "Cantidad de RESERVED3 para " + lcExtraData )
FOR I = 1 TO lnPropsAndComments_Count_Esperado
THIS.asserttrue( ASCAN( laPropsAndComments, laPropsAndComments_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ;
, ' Comprobaci<63>n de que existe la Reserved3 "' + TRANSFORM(laPropsAndComments_Esperado(I,1)) + '"' + " para " + lcExtraData )
ENDFOR
*-- PROTECTED
THIS.assertequals( LEN(toReg_Esperado.PROTECTED), LEN(toReg.PROTECTED), "Tama<6D>o de PROTECTED para " + lcExtraData )
THIS.assertequals( lnProtected_Count_Esperado, lnProtected_Count, "Cantidad de PROTECTED para " + lcExtraData )
FOR I = 1 TO lnProtected_Count_Esperado
THIS.asserttrue( ASCAN( laProtected, laProtected_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ;
, ' Comprobaci<63>n de que existe la Protected "' + TRANSFORM(laProtected_Esperado(I,1)) + '"' + " para " + lcExtraData )
ENDFOR
*-- METHODS
THIS.assertequals( LEN( STRTRAN( toReg_Esperado.METHODS, CHR(13)+CHR(10), CHR(13) ) ) ;
, LEN( STRTRAN( toReg.METHODS, CHR(13)+CHR(10), CHR(13) ) ), "Tama<6D>o de METHODS para " + lcExtraData )
THIS.assertequals( lnMethods_Count_Esperado, lnMethods_Count, "Cantidad de METHODS para " + lcExtraData )
FOR I = 1 TO lnMethods_Count_Esperado
THIS.asserttrue( ASCAN( laMethods, laMethods_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ;
, ' Comprobaci<63>n de que existe el Method "' + TRANSFORM(laMethods_Esperado(I,1)) + '"' + " para " + lcExtraData )
ENDFOR
ELSE
*-- Evaluaci<63>n de errores
THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) )
THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) )
IF NOT INLIST( toEx.ERRORNO, 1098, 2071 ) && Error del usuario (ERROR y THROW)
THIS.messageout( TRANSFORM(toEx.LINECONTENTS) )
ENDIF
THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' )
ENDIF
THIS.messageout( '' )
THIS.messageout( REPLICATE('*',80) )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm_FB2P_SCX_YValidarLosCamposDelRegistro
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado ;
, 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 = 'fb2p_frm_1.scx'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.Convertir( lc_OutputFile, .F., .F., .T. )
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
SCAN ALL FOR NOT DELETED() AND ( UniqueID==PADR('Form',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
SCATTER MEMO NAME loReg_Esperado
lcClass = loReg_Esperado.CLASS
lcParent = loReg_Esperado.PARENT
lcObjName = loReg_Esperado.objName
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
ENDSCAN
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
ENDTRY
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaLibreria_FB2P_TEST_VCX_YValidarLosCamposDelRegistro
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado ;
, 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.
loCnv.l_PropSort_Enabled = .F. && Para buscar diferencias
loCnv.l_MethodSort_Enabled = .F. && Para buscar diferencias
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'fb2p_test.vcx' && 'THCALC.VCX' &&
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.Convertir( lc_OutputFile, .F., .F., .T. )
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
SCAN ALL FOR NOT DELETED() AND ( UniqueID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
SCATTER MEMO NAME loReg_Esperado
lcClass = loReg_Esperado.CLASS
lcParent = loReg_Esperado.PARENT
lcObjName = loReg_Esperado.objName
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
ENDSCAN
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
ENDTRY
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,266 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_base__GetTimeStamp AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_base__GetTimeStamp OF ut__foxbin2prg__c_conversor_base__GetTimeStamp.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_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, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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)
*-- Visualizaci<63>n de valores
THIS.messageout( ' TimeStamp (T) = ' + TRANSFORM(ltTimeStamp) )
THIS.messageout( ' TimeStamp (N) = ' + TRANSFORM(lnTimeStamp) )
*-- Evaluaci<63>n de valores
THIS.assertequals( ltTimeStamp_Esperado, ltTimeStamp, "[Fecha y Hora]" )
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_DevolverLaFechaHora_2013_12_01_08_02_00_ParaElValor_1132544064
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544064 && Corresponde a {^2013/12/01 8:02:00}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:02:00})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverLaFechaHora_2013_12_01_08_02_01_ParaElValor_1132544065
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544065 && Corresponde a {^2013/12/01 8:02:01}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:02:01})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverLaFechaHora_2013_12_01_08_02_30_ParaElValor_1132544094
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544094 && Corresponde a {^2013/12/01 8:02:30}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:02:30})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverLaFechaHora_2013_12_01_08_02_31_ParaElValor_1132544095
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544095 && Corresponde a {^2013/12/01 8:02:31}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:02:31})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverLaFechaHora_2013_12_01_08_03_00_ParaElValor_1132544096
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544096 && Corresponde a {^2013/12/01 8:02:32}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:03:00})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverLaFechaHora_2013_12_01_08_03_01_ParaElValor_1132544097
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544097 && Corresponde a {^2013/12/01 8:02:33}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:03:01})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverLaFechaHora_2013_12_01_08_03_27_ParaElValor_1132544123__HoraReal__08_02_59
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
lnTimeStamp = 1132544123 && Corresponde a {^2013/12/01 8:02:59}
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
ltTimeStamp_Esperado = TTOC({^2013/12/01 8:03:27})
*-- TEST
ltTimeStamp = loObj.gettimestamp( lnTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,325 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_base__RowTimeStamp AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_base__RowTimeStamp OF ut__foxbin2prg__c_conversor_base__RowTimeStamp.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_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, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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)
*-- Visualizaci<63>n de valores
THIS.messageout( ' TimeStamp (T) = ' + TRANSFORM(ltTimeStamp) )
THIS.messageout( ' TimeStamp (N) = ' + TRANSFORM(lnTimeStamp) )
*-- Evaluaci<63>n de valores
THIS.assertequals( lnTimeStamp_Esperado, lnTimeStamp, "[Valor de TimeStamp]" )
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_DevolverElValor_1132544064_ParaLaFechaHora_2013_12_01_08_02_00
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:02:00} && Le corresponde el numero 1132544064
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544064
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544065_ParaLaFechaHora_2013_12_01_08_02_01
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:02:01} && Le corresponde el numero 1132544065
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544065
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544095_ParaLaFechaHora_2013_12_01_08_02_31
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:02:31} && Le corresponde el numero 1132544095
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544095
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544096_ParaLaFechaHora_2013_12_01_08_02_32
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:02:32} && Le corresponde el numero 1132544096
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544096
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544097_ParaLaFechaHora_2013_12_01_08_02_33
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:02:33} && Le corresponde el numero 1132544097
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544097
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp-1 )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544123_ParaLaFechaHora_2013_12_01_08_02_59
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:02:59} && Le corresponde el numero 1132544123
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544123
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544096_ParaLaFechaHora_2013_12_01_08_03_00
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:03:00} && Le corresponde el numero 1132544096
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544096
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544097_ParaLaFechaHora_2013_12_01_08_03_01
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:03:01} && Le corresponde el numero 1132544097
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544097
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp-1 )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_DevolverElValor_1132544123_ParaLaFechaHora_2013_12_01_08_03_27
LOCAL lnCodError, lnCodError_Esperado ;
, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_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
ltTimeStamp = {^2013/12/01 8:03:27} && Le corresponde el numero 1132544123
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnTimeStamp_Esperado = 1132544123
*lnTimeStamp_Esperado = loObj.rowtimestamp( ltTimeStamp )
*-- TEST
lnTimeStamp = loObj.rowtimestamp( ltTimeStamp )
THIS.Evaluate_results( loEx, lnCodError_Esperado, ltTimeStamp, ltTimeStamp_Esperado, lnTimeStamp, lnTimeStamp_Esperado )
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,127 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_base__get_SeparatedPropAndValue AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_base__get_SeparatedPropAndValue OF ut__foxbin2prg__c_conversor_base__get_SeparatedPropAndValue.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_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 ;
, tcPropName, tcPropValue, tcComentario, tcPropName_Esperado, tcPropValue_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<63>n de caracteres especiales
tcPropValue = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcPropValue )
tcPropValue_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcPropValue_Esperado )
*-- Visualizaci<63>n de valores
THIS.messageout( ' PropName = ' + TRANSFORM(tcPropName) )
THIS.messageout( ' PropValue = ' + TRANSFORM(tcPropValue) )
*-- Evaluaci<63>n de valores
THIS.assertequals( tcPropName_Esperado, tcPropName, "PropsAndValues_Count" )
THIS.assertequals( tcPropValue_Esperado, tcPropValue, "PropsAndValues_Count" )
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_DevolverSeparados_Prop_y_Value
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, laProps(1,2) ,lcPropName, lcPropValue, lcComentario, lcPropName_Esperado, lcPropValue_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
lcPropName = '_memberdata'
lcPropValue = '<VFPData><memberdata name="mimetodo" display="miMetodo"/></VFPData>'
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
laProps( 1,1) = 'prop_especial_cr = <fb2p_value>Este es el valor 1&#13;Este el 2&#13;Y este bajo Shift_Enter el 3</fb2p_value>'
laProps( 1,2) = ''
lcPropName_Esperado = 'prop_especial_cr'
lcPropValue_Esperado = '<fb2p_value>Este es el valor 1&#13;Este el 2&#13;Y este bajo Shift_Enter el 3</fb2p_value>'
*-- TEST
loObj.get_SeparatedPropAndValue( laProps(1,1), @lcPropName, @lcPropValue )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @lcComentario, @lcPropName_Esperado, @lcPropValue_Esperado )
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,235 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_base__normalizarValorPropiedad AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_base__normalizarValorPropiedad OF ut__foxbin2prg__c_conversor_base__normalizarValorPropiedad.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_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 ;
, tcPropName, tcPropValue, tcComentario, tcPropValue_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<63>n de caracteres especiales
tcPropValue = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcPropValue )
tcPropValue_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcPropValue_Esperado )
*-- Visualizaci<63>n de valores
THIS.messageout( ' PropName = ' + TRANSFORM(tcPropName) )
THIS.messageout( ' PropValue = ' + TRANSFORM(tcPropValue) )
*-- Evaluaci<63>n de valores
THIS.assertequals( tcPropValue_Esperado, tcPropValue, "PropsAndValues_Count" )
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_normalizarLaPropiedad_memberdata_separandoLosMiembrosPorLinea_ConLosTags_VFPData_PorFuera
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, lcComentario, lcPropValue_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
lcPropName = '_memberdata'
lcPropValue = '<VFPData><memberdata name="mimetodo" display="miMetodo"/></VFPData>'
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
TEXT TO lcPropValue_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<VFPData>
<<C_TAB>><<C_TAB>><memberdata name="mimetodo" display="miMetodo"/>
<<C_TAB>><<C_TAB>></VFPData>
ENDTEXT
*-- TEST
loObj.normalizarValorPropiedad( @lcPropName, @lcPropValue, @lcComentario )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @lcComentario, @lcPropValue_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_normalizarUnaPropiedadCon_CR__AgregandoLosTags_fb2p_value_PorFueraYCodificandoLos_CR
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, lcComentario, lcPropValue_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
lcPropName = 'unaPropiedadCon_CR'
lcPropValue = C_FB2P_VALUE_I + 'valor 1' + C_CR + 'valor 2' + C_CR + 'valor 3' + C_FB2P_VALUE_F
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcPropValue_Esperado = C_FB2P_VALUE_I + 'valor 1&#13;valor 2&#13;valor 3' + C_FB2P_VALUE_F
*-- TEST
loObj.normalizarValorPropiedad( @lcPropName, @lcPropValue, @lcComentario )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @lcComentario, @lcPropValue_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_normalizarUnaPropiedadCon_CRLF__AgregandoLosTags_fb2p_value_PorFueraYSinCodificarLos_CRLF
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, lcComentario, lcPropValue_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
lcPropName = 'unaPropiedadCon_CR'
lcPropValue = C_FB2P_VALUE_I + 'valor 1' + CR_LF + 'valor 2' + CR_LF + 'valor 3' + C_FB2P_VALUE_F
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcPropValue_Esperado = C_FB2P_VALUE_I + 'valor 1' + CR_LF + 'valor 2' + CR_LF + 'valor 3' + C_FB2P_VALUE_F
*-- TEST
loObj.normalizarValorPropiedad( @lcPropName, @lcPropValue, @lcComentario )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @lcComentario, @lcPropValue_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_normalizarUnaPropiedadCon_CR_y_CRLF_mixta__AgregandoLosTags_fb2p_value_PorFueraCodificandoLos_CR_yMantneiendoLos_CRLF
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, lcComentario, lcPropValue_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
lcPropName = 'unaPropiedadCon_CR'
lcPropValue = C_FB2P_VALUE_I + 'valor 1' + C_CR + 'valor 2' + CR_LF + 'valor 3' + C_FB2P_VALUE_F
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcPropValue_Esperado = C_FB2P_VALUE_I + 'valor 1' + '&#13;' + 'valor 2' + CR_LF + 'valor 3' + C_FB2P_VALUE_F
*-- TEST
loObj.normalizarValorPropiedad( @lcPropName, @lcPropValue, @lcComentario )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @lcComentario, @lcPropValue_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_normalizarUnaPropiedadCon_LF_y_CRLF_mixta__AgregandoLosTags_fb2p_value_PorFueraCodificandoLos_LF_yMantneiendoLos_CRLF
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, lcComentario, lcPropValue_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
lcPropName = 'unaPropiedadCon_CR'
lcPropValue = C_FB2P_VALUE_I + 'valor 1' + C_LF + 'valor 2' + CR_LF + 'valor 3' + C_FB2P_VALUE_F
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcPropValue_Esperado = C_FB2P_VALUE_I + 'valor 1' + '&#10;' + 'valor 2' + CR_LF + 'valor 3' + C_FB2P_VALUE_F
*-- TEST
loObj.normalizarValorPropiedad( @lcPropName, @lcPropValue, @lcComentario )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @lcComentario, @lcPropValue_Esperado )
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,296 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_bin_a_prg__get_PropsAndValuesFrom_PROPERTIES AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_bin_a_prg__get_PropsAndValuesFrom_PROPERTIES OF ut__foxbin2prg__c_conversor_bin_a_prg__get_PropsAndValuesFrom_PROPERTIES.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, tnSort, taPropsAndValues, tnPropsAndValues_Count, tcSortedMemo ;
, taPropsAndValues_Esperado, tnPropsAndValues_Count_Esperado, 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
tcSortedMemo = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcSortedMemo )
tcMemo_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Esperado )
FOR I = 1 TO tnPropsAndValues_Count
taPropsAndValues(I,2) = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( TRANSFORM(taPropsAndValues(I,2)) )
ENDFOR
FOR I = 1 TO tnPropsAndValues_Count_Esperado
taPropsAndValues_Esperado(I,2) = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( TRANSFORM(taPropsAndValues_Esperado(I,2)) )
ENDFOR
*-- Visualizaci<63>n de valores
THIS.messageout( ' Sort = ' + TRANSFORM(tnSort) )
THIS.messageout( REPLICATE('-',50) )
FOR I = 1 TO tnPropsAndValues_Count
THIS.messageout( "taPropsAndValues(" + STR(I,3) + '): ' ;
+ TRANSFORM(taPropsAndValues(I,1)) + ' = ' + TRANSFORM(taPropsAndValues(I,2)) + '' )
ENDFOR
THIS.messageout( REPLICATE('-',50) )
FOR I = 1 TO tnPropsAndValues_Count_Esperado
THIS.messageout( "taPropsAndValues_Esp(" + STR(I,3) + '): ' ;
+ TRANSFORM(taPropsAndValues_Esperado(I,1)) + ' = ' + TRANSFORM(taPropsAndValues_Esperado(I,2)) + '' )
ENDFOR
THIS.messageout( REPLICATE('-',50) )
THIS.messageout( 'Sorted Memo: [' + tcSortedMemo + ']' )
*-- Evaluaci<63>n de valores
THIS.assertequals( tnPropsAndValues_Count_Esperado, tnPropsAndValues_Count, "PropsAndValues_Count" )
FOR I = 1 TO MIN(tnPropsAndValues_Count, tnPropsAndValues_Count_Esperado)
THIS.assertequals( taPropsAndValues_Esperado(I,1), taPropsAndValues(I,1), "PropAndValue" )
ENDFOR
THIS.assertequals( tcMemo_Esperado, tcSortedMemo, "Memo" )
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_PROPERTIES_yDevolverUnArrayConLasPropsOrdenadas_PrimeroLasNormalesYLuegoLasDeObjeto_Sorted
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lnSort, laPropsAndValues(1,2), lnPropsAndValues_Count, lcMemo, lcSortedMemo ;
, laPropsAndValues_Esperado(1,2), lnPropsAndValues_Count_Esperado, 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
Height = 2.73
Width = 27.40
prop1 = .F.
_memberdata = <VFPData><memberdata name="mimetodo" display="miMetodo"/></VFPData>
prop_especial_cr = <<REPLICATE( CHR(1), 517 )>> 57Este es el valor 1&#13;Este el 2&#10;Y este bajo Shift_Enter el 3
prop_especial_crlf = <<REPLICATE( CHR(1), 517 )>> 35El valor 1
El valor 2
Y el 3!
<<SPACE(2)>>
Name = "c1"
Page2.Caption = "Page2"
Page1.Name = "Page1"
ENDTEXT
lcMemo = STRTRAN( STRTRAN( lcMemo, '&#13;', CHR(13) ), '&#10;', CHR(10) )
lnSort = 1
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
DIMENSION laPropsAndValues_Esperado(9,2)
laPropsAndValues_Esperado = ''
laPropsAndValues_Esperado( 1,1) = 'Height'
laPropsAndValues_Esperado( 1,2) = '2.73'
laPropsAndValues_Esperado( 2,1) = 'Name'
laPropsAndValues_Esperado( 2,2) = '"c1"'
laPropsAndValues_Esperado( 3,1) = 'prop1'
laPropsAndValues_Esperado( 3,2) = '.F.'
laPropsAndValues_Esperado( 4,1) = 'prop_especial_cr'
laPropsAndValues_Esperado( 4,2) = 'Este es el valor 1' + CHR(13) + 'Este el 2' + CHR(13) + 'Y este bajo Shift_Enter el 3'
laPropsAndValues_Esperado( 5,1) = 'prop_especial_crlf'
laPropsAndValues_Esperado( 5,2) = 'El valor 1' + CHR(13) + CHR(10) ;
+ 'El valor 2' + CHR(13) + CHR(10) + 'Y el 3!' + CHR(13) + CHR(10) + SPACE(2)
laPropsAndValues_Esperado( 6,1) = 'Width'
laPropsAndValues_Esperado( 6,2) = '27.40'
laPropsAndValues_Esperado( 7,1) = '_memberdata'
laPropsAndValues_Esperado( 7,2) = '<VFPData><memberdata name="mimetodo" display="miMetodo"/></VFPData>'
laPropsAndValues_Esperado( 8,1) = 'Page1.Name'
laPropsAndValues_Esperado( 8,2) = '"Page1"'
laPropsAndValues_Esperado( 9,1) = 'Page2.Caption'
laPropsAndValues_Esperado( 9,2) = '"Page2"'
lnPropsAndValues_Count_Esperado = 9
TEXT TO lcMemo_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
Height = 2.73
Name = "c1"
prop1 = .F.
prop_especial_cr = <fb2p_value>Este es el valor 1&#13;Este el 2&#10;Y este bajo Shift_Enter el 3</fb2p_value>
prop_especial_crlf = <fb2p_value>
El valor 1
El valor 2
Y el 3!
<<SPACE(2)>>
</fb2p_value>
Width = 27.40
_memberdata = <VFPData>
<<>> <memberdata name="mimetodo" display="miMetodo"/>
<<>> </VFPData>
Page1.Name = "Page1"
Page2.Caption = "Page2"
ENDTEXT
*-- TEST
loObj.get_PropsAndValuesFrom_PROPERTIES( @lcMemo, lnSort, @laPropsAndValues, @lnPropsAndValues_Count, @lcSortedMemo )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcMemo, lnSort, @laPropsAndValues, @lnPropsAndValues_Count, @lcSortedMemo ;
, @laPropsAndValues_Esperado, @lnPropsAndValues_Count_Esperado, @lcMemo_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_evaluarUnMemo_PROPERTIES_yDevolverUnArrayConLasPropsSinOrdenar_PrimeroLasNormalesYLuegoLasDeObjeto
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lnSort, laPropsAndValues(1,2), lnPropsAndValues_Count, lcMemo, lcSortedMemo ;
, laPropsAndValues_Esperado(1,2), lnPropsAndValues_Count_Esperado, 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
Height = 2.73
Width = 27.40
prop1 = .F.
_memberdata = <VFPData><memberdata name="mimetodo" display="miMetodo"/></VFPData>
prop_especial_cr = <<REPLICATE( CHR(1), 517 )>> 57Este es el valor 1&#13;Este el 2&#10;Y este bajo Shift_Enter el 3
prop_especial_crlf = <<REPLICATE( CHR(1), 517 )>> 35El valor 1
El valor 2
Y el 3!
<<SPACE(2)>>
Name = "c1"
Page2.Caption = "Page2"
Page1.Name = "Page1"
ENDTEXT
lcMemo = STRTRAN( STRTRAN( lcMemo, '&#13;', CHR(13) ), '&#10;', CHR(10) )
lnSort = 0
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
DIMENSION laPropsAndValues_Esperado(9,2)
laPropsAndValues_Esperado = ''
laPropsAndValues_Esperado( 1,1) = 'Height'
laPropsAndValues_Esperado( 1,2) = '2.73'
laPropsAndValues_Esperado( 2,1) = 'Width'
laPropsAndValues_Esperado( 2,2) = '27.40'
laPropsAndValues_Esperado( 3,1) = 'prop1'
laPropsAndValues_Esperado( 3,2) = '.F.'
laPropsAndValues_Esperado( 4,1) = '_memberdata'
laPropsAndValues_Esperado( 4,2) = '<VFPData><memberdata name="mimetodo" display="miMetodo"/></VFPData>'
laPropsAndValues_Esperado( 5,1) = 'prop_especial_cr'
laPropsAndValues_Esperado( 5,2) = 'Este es el valor 1' + C_CR + 'Este el 2' + C_LF + 'Y este bajo Shift_Enter el 3'
laPropsAndValues_Esperado( 6,1) = 'prop_especial_crlf'
laPropsAndValues_Esperado( 6,2) = 'El valor 1' + CR_LF ;
+ 'El valor 2' + CR_LF + 'Y el 3!' + CR_LF + SPACE(2)
laPropsAndValues_Esperado( 7,1) = 'Name'
laPropsAndValues_Esperado( 7,2) = '"c1"'
laPropsAndValues_Esperado( 8,1) = 'Page2.Caption'
laPropsAndValues_Esperado( 8,2) = '"Page2"'
laPropsAndValues_Esperado( 9,1) = 'Page1.Name'
laPropsAndValues_Esperado( 9,2) = '"Page1"'
lnPropsAndValues_Count_Esperado = 9
TEXT TO lcMemo_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
Height = 2.73
Width = 27.40
prop1 = .F.
_memberdata = <VFPData>
<<>> <memberdata name="mimetodo" display="miMetodo"/>
<<>> </VFPData>
prop_especial_cr = <fb2p_value>Este es el valor 1&#13;Este el 2&#10;Y este bajo Shift_Enter el 3</fb2p_value>
prop_especial_crlf = <fb2p_value>
El valor 1
El valor 2
Y el 3!
<<SPACE(2)>>
</fb2p_value>
Name = "c1"
Page2.Caption = "Page2"
Page1.Name = "Page1"
ENDTEXT
*-- TEST
loObj.get_PropsAndValuesFrom_PROPERTIES( @lcMemo, lnSort, @laPropsAndValues, @lnPropsAndValues_Count, @lcSortedMemo )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcMemo, lnSort, @laPropsAndValues, @lnPropsAndValues_Count, @lcSortedMemo ;
, @laPropsAndValues_Esperado, @lnPropsAndValues_Count_Esperado, @lcMemo_Esperado )
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,300 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_prg_a_bin__analizarAsignacion_TAG_Indicado AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_prg_a_bin__analizarAsignacion_TAG_Indicado OF ut__foxbin2prg__c_conversor_prg_a_bin__analizarAsignacion_TAG_Indicado.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_prg_a_bin", "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 ;
, tcPropName, tcPropValue, taProps, tnProp_Count ;
, I, tcTag_I, tcTag_F, tnLen_lcTag_I, tnLen_lcTag_F, tcMemo, tcValue_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_prg_a_bin 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
tcPropValue = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcPropValue )
tcValue_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcValue_Esperado )
*-- Visualizaci<63>n de valores
THIS.messageout( ' Value = ' + TRANSFORM(tcPropValue) )
THIS.messageout( ' Value_Esperado = ' + TRANSFORM(tcValue_Esperado) )
*-- Evaluaci<63>n de valores
THIS.assertequals( tcValue_Esperado, tcPropValue, "Valor devuelto" )
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_analizarAsignacion_TAG__fb2p_value__EnUnaAsignacion_InLine
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, laProps(1,2), lnProp_Count, I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, lcMemo ;
, lcValue_Esperado ;
, loEx AS EXCEPTION
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
loEx = NULL
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lcTag_I = '<fb2p_value>'
lcTag_F = '</fb2p_value>'
lnLen_lcTag_I = LEN(lcTag_I)
lnLen_lcTag_F = LEN(lcTag_F)
lnProp_Count = 17
DIMENSION laProps(lnProp_Count,2)
laProps = ''
laProps( 1,1) = 'Height = 2.73'
laProps( 1,2) = ''
laProps( 2,1) = 'Name = "c1"'
laProps( 2,2) = ''
laProps( 3,1) = 'prop1 = .F.'
laProps( 3,2) = 'Mi prop1'
laProps( 4,1) = 'prop_especial_cr = <fb2p_value>Este es el valor 1&#13;Este el 2&#13;Y este bajo Shift_Enter el 3</fb2p_value>'
laProps( 4,2) = ''
laProps( 5,1) = 'prop_especial_crlf = <fb2p_value>'
laProps( 5,2) = ''
laProps( 6,1) = 'El valor 1'
laProps( 6,2) = ''
laProps( 7,1) = 'El valor 2'
laProps( 7,2) = ''
laProps( 8,1) = 'Y el 3!'
laProps( 8,2) = ''
laProps( 9,1) = ''
laProps( 9,2) = ''
laProps(10,1) = '</fb2p_value>'
laProps(10,2) = ''
laProps(11,2) = 'Deber<65>a tener CR+LF'
laProps(11,2) = ''
laProps(12,1) = 'Width = 27.4'
laProps(12,2) = ''
laProps(13,1) = '_memberdata = [<VFPData> ;'
laProps(13,2) = ''
laProps(14,1) = '<memberdata name="mimetodo" display="miMetodo"/> ;'
laProps(14,2) = ''
laProps(15,1) = '</VFPData>]'
laProps(15,2) = 'XML Metadata for customizable properties'
I = 4
loObj.get_SeparatedPropAndValue( laProps(I,1), @lcPropName, @lcPropValue )
*lcPropName = 'prop_especial_cr'
*lcPropValue = '<fb2p_value>Este es el valor 1&#13;Este el 2&#13;Y este bajo Shift_Enter el 3</fb2p_value>'
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcValue_Esperado = REPLICATE( CHR(1), 517 ) + STR(57,8) + 'Este es el valor 1' + CHR(13) + 'Este el 2' + CHR(13) + 'Y este bajo Shift_Enter el 3'
*-- TEST
loObj.analizarAsignacion_TAG_Indicado( @lcPropName, @lcPropValue, @laProps, @lnProp_Count ;
, @I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, @lcMemo )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @laProps, @lnProp_Count ;
, @I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, @lcMemo, @lcValue_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_analizarAsignacion_TAG__fb2p_value__EnUnaAsignacion_MultiLine
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, laProps(1,2), lnProp_Count, I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, lcMemo ;
, lcValue_Esperado ;
, loEx AS EXCEPTION
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
loEx = NULL
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lcTag_I = '<fb2p_value>'
lcTag_F = '</fb2p_value>'
lnLen_lcTag_I = LEN(lcTag_I)
lnLen_lcTag_F = LEN(lcTag_F)
lnProp_Count = 17
DIMENSION laProps(lnProp_Count,2)
laProps = ''
laProps( 1,1) = 'Height = 2.73'
laProps( 1,2) = ''
laProps( 2,1) = 'Name = "c1"'
laProps( 2,2) = ''
laProps( 3,1) = 'prop1 = .F.'
laProps( 3,2) = 'Mi prop1'
laProps( 4,1) = 'prop_especial_cr = <fb2p_value>Este es el valor 1&#13;Este el 2&#13;Y este bajo Shift_Enter el 3</fb2p_value>'
laProps( 4,2) = ''
laProps( 5,1) = 'prop_especial_crlf = <fb2p_value>'
laProps( 5,2) = ''
laProps( 6,1) = 'El valor 1'
laProps( 6,2) = ''
laProps( 7,1) = 'El valor 2'
laProps( 7,2) = ''
laProps( 8,1) = 'Y el 3!'
laProps( 8,2) = ''
laProps( 9,1) = ''
laProps( 9,2) = ''
laProps(10,1) = '</fb2p_value>'
laProps(10,2) = ''
laProps(11,2) = 'Deber<65>a tener CR+LF'
laProps(11,2) = ''
laProps(12,1) = 'Width = 27.4'
laProps(12,2) = ''
laProps(13,1) = '_memberdata = [<VFPData> ;'
laProps(13,2) = ''
laProps(14,1) = '<memberdata name="mimetodo" display="miMetodo"/> ;'
laProps(14,2) = ''
laProps(15,1) = '</VFPData>]'
laProps(15,2) = 'XML Metadata for customizable properties'
I = 5
loObj.get_SeparatedPropAndValue( laProps(I,1), @lcPropName, @lcPropValue )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcValue_Esperado = REPLICATE( CHR(1), 517 ) + STR(33,8) + 'El valor 1' + CR_LF + 'El valor 2' + CR_LF + 'Y el 3!' + CR_LF
*-- TEST
loObj.analizarAsignacion_TAG_Indicado( @lcPropName, @lcPropValue, @laProps, @lnProp_Count ;
, @I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, @lcMemo )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @laProps, @lnProp_Count ;
, @I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, @lcMemo, @lcValue_Esperado )
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_analizarAsignacion_TAG__memberdata__EnUnaAsignacion_MultiLine
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcPropName, lcPropValue, laProps(1,2), lnProp_Count, I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, lcMemo ;
, lcValue_Esperado ;
, loEx AS EXCEPTION
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
loEx = NULL
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lcTag_I = '<VFPData>'
lcTag_F = '</VFPData>'
lnLen_lcTag_I = LEN(lcTag_I)
lnLen_lcTag_F = LEN(lcTag_F)
lnProp_Count = 17
DIMENSION laProps(lnProp_Count,2)
laProps = ''
laProps( 1,1) = 'Height = 2.73'
laProps( 1,2) = ''
laProps( 2,1) = 'Name = "c1"'
laProps( 2,2) = ''
laProps( 3,1) = 'prop1 = .F.'
laProps( 3,2) = 'Mi prop1'
laProps( 4,1) = 'prop_especial_cr = <fb2p_value>Este es el valor 1&#13;Este el 2&#13;Y este bajo Shift_Enter el 3</fb2p_value>'
laProps( 4,2) = ''
laProps( 5,1) = 'prop_especial_crlf = <fb2p_value>'
laProps( 5,2) = ''
laProps( 6,1) = 'El valor 1'
laProps( 6,2) = ''
laProps( 7,1) = 'El valor 2'
laProps( 7,2) = ''
laProps( 8,1) = 'Y el 3!'
laProps( 8,2) = ''
laProps( 9,1) = ''
laProps( 9,2) = ''
laProps(10,1) = '</fb2p_value>'
laProps(10,2) = ''
laProps(11,2) = 'Deber<65>a tener CR+LF'
laProps(11,2) = ''
laProps(12,1) = 'Width = 27.4'
laProps(12,2) = ''
laProps(13,1) = '_memberdata = <VFPData>'
laProps(13,2) = ''
laProps(14,1) = '<memberdata name="mimetodo" display="miMetodo"/>'
laProps(14,2) = ''
laProps(15,1) = '</VFPData>'
laProps(15,2) = 'XML Metadata for customizable properties'
I = 13
loObj.get_SeparatedPropAndValue( laProps(I,1), @lcPropName, @lcPropValue )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lcValue_Esperado = REPLICATE( CHR(1), 517 ) + STR(71,8) + '<VFPData>' + CR_LF + '<memberdata name="mimetodo" display="miMetodo"/>' + CR_LF + '</VFPData>'
*-- TEST
loObj.analizarAsignacion_TAG_Indicado( @lcPropName, @lcPropValue, @laProps, @lnProp_Count ;
, @I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, @lcMemo )
THIS.Evaluate_results( loEx, lnCodError_Esperado ;
, @lcPropName, @lcPropValue, @laProps, @lnProp_Count ;
, @I, lcTag_I, lcTag_F, lnLen_lcTag_I, lnLen_lcTag_F, @lcMemo, @lcValue_Esperado )
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,161 @@
DEFINE CLASS ut__foxbin2prg__c_conversor_prg_a_bin__insert_AllObjects AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ut__foxbin2prg__c_conversor_prg_a_bin__insert_AllObjects OF ut__foxbin2prg__c_conversor_prg_a_bin__insert_AllObjects.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
icClase = 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"
LOCAL loObjeto AS CL_OBJETO OF "FOXBIN2PRG.PRG"
LOCAL loClase AS CL_CLASE 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_prg_a_bin", "FOXBIN2PRG.PRG")
THIS.icClase = NEWOBJECT("CL_CLASE", "FOXBIN2PRG.PRG")
loClase = THIS.icClase
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
THIS.icClase = 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, toClase, taWriteOrder_Esperado
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
LOCAL loObjeto AS CL_OBJETO OF "FOXBIN2PRG.PRG"
LOCAL loClase AS CL_CLASE OF "FOXBIN2PRG.PRG"
LOCAL I
loObj = THIS.icObj
loClase = toClase
IF PCOUNT() = 0
THIS.messageout( "* Support method, not a valid test." )
RETURN .T.
ENDIF
IF ISNULL(toEx)
*-- Visualizaci<63>n de valores
FOR I = 1 TO loClase._AddObject_Count
loObjeto = loClase._AddObjects(I)
THIS.messageout( ' objeto._Nombre = ' + TRANSFORM(loObjeto._Nombre) )
THIS.messageout( ' objeto._ZOrder = ' + TRANSFORM(loObjeto._ZOrder) )
THIS.messageout( ' objeto._WriteOrder = ' + TRANSFORM(loObjeto._WriteOrder) )
THIS.messageout( REPLICATE('-',50) )
ENDFOR
*-- Evaluaci<63>n de valores
FOR I = 1 TO loClase._AddObject_Count
loObjeto = loClase._AddObjects(I)
THIS.assertequals( taWriteOrder_Esperado(I), loObjeto._WriteOrder, "[WriteOrder para objeto " + loObjeto._Nombre + "]" )
ENDFOR
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_ordenarLosObjetosSegunSuOrdenOriginal
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, laWriteOrder_Esperado(3) ;
, loEx AS EXCEPTION
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
LOCAL loObjeto AS CL_OBJETO OF "FOXBIN2PRG.PRG"
LOCAL loClase AS CL_CLASE OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj
loClase = THIS.icClase
loEx = NULL
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
*--
loObjeto = NULL
loObjeto = NEWOBJECT("CL_OBJETO", "FOXBIN2PRG.PRG")
loObjeto._ObjName = 'Label3'
loObjeto._Parent = 'Form1.pgfPanel.pagApariencia'
loObjeto._Nombre = 'Form1.pgfPanel.pagApariencia.Label3'
loObjeto._ZOrder = 50
loClase.add_Object( loObjeto )
*--
loObjeto = NULL
loObjeto = NEWOBJECT("CL_OBJETO", "FOXBIN2PRG.PRG")
loObjeto._ObjName = 'Label3'
loObjeto._Parent = 'Form1.pgfPanel.pagAvanzado'
loObjeto._Nombre = 'Form1.pgfPanel.pagAvanzado.Label3'
loObjeto._ZOrder = 82
loClase.add_Object( loObjeto )
*--
loObjeto = NULL
loObjeto = NEWOBJECT("CL_OBJETO", "FOXBIN2PRG.PRG")
loObjeto._ObjName = 'Label3'
loObjeto._Parent = 'Form1.pgfPanel.pagSeteos'
loObjeto._Nombre = 'Form1.pgfPanel.pagSeteos.Label3'
loObjeto._ZOrder = 30
loClase.add_Object( loObjeto )
*--
loObjeto = NULL
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
laWriteOrder_Esperado(1) = 2
laWriteOrder_Esperado(2) = 3
laWriteOrder_Esperado(3) = 1
*-- TEST
loObj.insert_AllObjects( @loClase )
THIS.Evaluate_results( loEx, lnCodError_Esperado, @loClase, @laWriteOrder_Esperado )
ENDFUNC
ENDDEFINE

BIN
foxbin2prg.pjt Normal file

Binary file not shown.

BIN
foxbin2prg.pjx Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

7
ignore.conf Normal file
View File

@@ -0,0 +1,7 @@
*.FXP
*.LNK
*.SCC
*.TMP
*.BAK
*/FXUResults.*
*/FXUPersist*.*