Changeset: 31 Changeset: 31 Cambios de casa

This commit is contained in:
fernando
2013-12-06 01:56:42 +01:00
19 changed files with 5288 additions and 124 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,89 @@
*-- 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"/>] ;
+ [</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
ENDDEFINE

3279
TESTS/ut__foxbin2prg.prg Normal file

File diff suppressed because it is too large Load Diff

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

View File

@@ -279,17 +279,22 @@ TRY
ENDIF
ENDCASE
CD (JUSTPATH(lcSys16))
SET PATH TO (lcPath)
ENDIF
CATCH TO loEx
IF llExisteConfig
goCnv.writeLog( 'ERROR: ' + TRANSFORM(loEx.ERRORNO) + ', ' + loEx.MESSAGE + CR_LF ;
+ loEx.PROCEDURE + ', line ' + TRANSFORM(loEx.LINENO) + CR_LF ;
+ loEx.DETAILS )
ENDIF
FINALLY
goFrm_Avance.HIDE()
goFrm_Avance.RELEASE()
STORE NULL TO goCnv, goFrm_Avance
RELEASE goCnv, goFrm_Avance
CD (JUSTPATH(lcSys16))
SET PATH TO (lcPath)
ENDTRY
IF _VFP.STARTMODE > 0
@@ -309,6 +314,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="exception2str" type="method" display="Exception2Str"/>] ;
+ [<memberdata name="writelog" type="method" display="writeLog"/>] ;
+ [<memberdata name="l_debug" type="property" display="l_Debug"/>] ;
+ [<memberdata name="l_test" type="property" display="l_Test"/>] ;
+ [<memberdata name="l_showerrors" type="property" display="l_ShowErrors"/>] ;
+ [<memberdata name="c_curdir" type="property" display="c_CurDir"/>] ;
+ [<memberdata name="c_inputfile" type="property" display="c_InputFile"/>] ;
@@ -332,10 +338,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
c_LogFile = ''
c_OutputFile = ''
l_Debug = .F.
l_Test = .F.
l_ShowErrors = .F.
lFileMode = .F.
nClassTimeStamp = ''
n_FB2PRG_Version = 1.8
n_FB2PRG_Version = 1.9
o_Conversor = NULL
c_VC2 = 'VC2'
c_SC2 = 'SC2'
@@ -375,10 +382,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
*******************************************************************************************************************
PROCEDURE Convertir
LPARAMETERS tc_InputFile
LPARAMETERS tc_InputFile, toModulo, toEx AS EXCEPTION
TRY
LOCAL lnCodError, loEx AS EXCEPTION, lcErrorInfo
LOCAL lnCodError, lcErrorInfo
lnCodError = 0
THIS.c_InputFile = FULLPATH( tc_InputFile )
THIS.c_CurDir = JUSTPATH( THIS.c_InputFile )
@@ -437,13 +444,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.o_Conversor.c_OutputFile = THIS.c_OutputFile
THIS.o_Conversor.c_LogFile = THIS.c_LogFile
THIS.o_Conversor.l_Debug = THIS.l_Debug
THIS.o_Conversor.l_Test = THIS.l_Test
THIS.o_Conversor.n_FB2PRG_Version = THIS.n_FB2PRG_Version
THIS.o_Conversor.Convertir()
THIS.o_Conversor.Convertir( @toModulo )
THIS.o_Conversor = NULL
CATCH TO loEx
lnCodError = loEx.ERRORNO
lcErrorInfo = THIS.Exception2Str(loEx) + CR_LF + CR_LF + 'Fuente: ' + THIS.c_InputFile
CATCH TO toEx
lnCodError = toEx.ERRORNO
lcErrorInfo = THIS.Exception2Str(toEx) + CR_LF + CR_LF + 'Fuente: ' + THIS.c_InputFile
TRY
STRTOFILE( lcErrorInfo, THIS.c_InputFile + '.ERR' )
@@ -646,6 +654,7 @@ DEFINE CLASS c_conversor_base AS SESSION
*******************************************************************************************************************
PROCEDURE Convertir
LPARAMETERS toModulo, toEx AS EXCEPTION
THIS.writeLog( '' )
THIS.writeLog( 'Convirtiendo archivo ' + THIS.c_OutputFile + '...' )
ENDPROC
@@ -1343,7 +1352,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
ENDPROC
@@ -1747,14 +1757,16 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
lcMemo = ''
IF toClase._Prop_Count > 0
DIMENSION laProps( toClase._Prop_Count, 2 )
DIMENSION laProps( toClase._Prop_Count, 3 )
ACOPY( toClase._Props, laProps )
lnPropsAndValues_Count = 0
WITH THIS
*-- OBTENGO LAS PROPIEDADES Y SUS VALORES
FOR I = 1 TO toClase._Prop_Count
.get_SeparatedPropAndValue( toClase._Props(I,1), @lcPropName, @lcValue )
*.get_SeparatedPropAndValue( toClase._Props(I,1), @lcPropName, @lcValue )
lcPropName = toClase._Props(I,1)
lcValue = toClase._Props(I,2)
DO CASE
CASE EMPTY(lcPropName)
@@ -1824,14 +1836,15 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
IF toObjeto._Prop_Count > 0
DIMENSION laPropsAndValues( toObjeto._Prop_Count, 2 )
ACOPY( toObjeto._Props, laPropsAndValues )
WITH THIS
FOR I = 1 TO toObjeto._Prop_Count
.get_SeparatedPropAndValue( toObjeto._Props(I,1), @lcPropName, @lcValue )
laPropsAndValues(I,1) = lcPropName
laPropsAndValues(I,2) = lcValue
ENDFOR
ENDWITH && THIS
*WITH THIS
* FOR I = 1 TO toObjeto._Prop_Count
* .get_SeparatedPropAndValue( toObjeto._Props(I,1), @lcPropName, @lcValue )
* laPropsAndValues(I,1) = lcPropName
* laPropsAndValues(I,2) = lcValue
* ENDFOR
*ENDWITH && THIS
*-- REORDENO LAS PROPIEDADES
@@ -2532,7 +2545,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
*toProject.setParsedProjInfoLine( @tcLine )
lnPos = AT( ' ', tcLine, 1 )
lnPos2 = AT( '&'+'&', tcLine )
IF lnPos2 > 0
*-- Con comentarios
lcDefinedPAM = lcDefinedPAM ;
@@ -2585,7 +2598,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
IF LEFT( tcLine, 11 ) == 'ADD OBJECT '
*-- Estructura a reconocer: ADD OBJECT 'frm_a.Check1' AS check [WITH]
llBloqueEncontrado = .T.
LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, Z
LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, Z, lcProp, lcValue
tcLine = CHRTRAN( tcLine, ['], ["] )
IF EMPTY(toClase._Fin_Cab)
@@ -2642,10 +2655,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
IF RIGHT(tcLine, 3) == ', ;'
*toObjeto.add_Property( .desnormalizarAsignacion( LEFT(tcLine, LEN(tcLine) - 3) ) )
toObjeto.add_Property( LEFT(tcLine, LEN(tcLine) - 3) )
.get_SeparatedPropAndValue( LEFT(tcLine, LEN(tcLine) - 3), @lcProp, @lcValue )
toObjeto.add_Property( @lcProp, @lcValue )
ELSE
*toObjeto.add_Property( .desnormalizarAsignacion( RTRIM(tcLine) ) )
toObjeto.add_Property( RTRIM(tcLine) )
.get_SeparatedPropAndValue( RTRIM(tcLine), @lcProp, @lcValue )
toObjeto.add_Property( @lcProp, @lcValue )
ENDIF
ENDFOR
@@ -2714,7 +2729,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
IF LEFT(tcLine + ' ', 13) == C_DEFINE_CLASS + ' '
TRY
llBloqueEncontrado = .T.
LOCAL Z, loEx AS EXCEPTION ;
LOCAL Z, lcProp, lcValue, loEx AS EXCEPTION ;
, llMETADATA_Completed, llPROTECTED_Completed, llHIDDEN_Completed, llDEFINED_PAM_Completed ;
, llINCLUDE_Completed, llCLASS_PROPERTY_Completed
@@ -2798,7 +2813,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
CASE NOT llCLASS_PROPERTY_Completed AND EMPTY( toClase._Fin_Cab ) && Propiedades del DEFINE CLASS
*toClase.add_Property( THIS.desnormalizarAsignacion( RTRIM(tcLine) ), RTRIM(tc_Comentario) )
toClase.add_Property( RTRIM(tcLine), RTRIM(tc_Comentario) )
.get_SeparatedPropAndValue( RTRIM(tcLine), @lcProp, @lcValue )
toClase.add_Property( @lcProp, @lcValue, RTRIM(tc_Comentario) )
OTHERWISE
@@ -2817,6 +2833,18 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
+ 'para el identificador [' + toClase._Nombre + ']'
ENDIF
toClase._PROPERTIES = THIS.classProps2Memo( toClase )
toClase._PROTECTED = THIS.hiddenAndProtected_PAM( toClase )
toClase._METHODS = THIS.classMethods2Memo( toClase )
*toClase._RESERVED1 = IIF( THIS.c_Type = 'SCX', 'Screen', 'Class' )
toClase._RESERVED2 = TRANSFORM( toClase._AddObject_Count + 1 )
toClase._RESERVED3 = THIS.defined_PAM2Memo( toClase )
toClase._RESERVED4 = toClase._ClassIcon
toClase._RESERVED5 = toClase._ProjectClassIcon
toClase._RESERVED6 = toClase._Scale
toClase._RESERVED7 = toClase._Comentario
toClase._RESERVED8 = toClase._includeFile
CATCH TO loEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
@@ -3005,11 +3033,12 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ;
, laBloquesExclusion(1,2), lnBloquesExclusion, I, toModulo
LOCAL lnCodError, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ;
, laBloquesExclusion(1,2), lnBloquesExclusion, I
STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version
STORE '' TO lcLine, lcSourceFile
STORE NULL TO loReg, toModulo
@@ -3026,9 +3055,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
THIS.escribirArchivoBin( @toModulo )
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -3037,7 +3064,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
@@ -3160,14 +3187,14 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
, loClase._BaseClass ;
, loClase._ObjName ;
, loClase._Parent ;
, THIS.classProps2Memo( loClase ) ;
, THIS.hiddenAndProtected_PAM( loClase ) ;
, THIS.classMethods2Memo( loClase ) ;
, loClase._PROPERTIES ;
, loClase._PROTECTED ;
, loClase._METHODS ;
, loClase._Ole ;
, loClase._Ole2 ;
, 'Class' ;
, TRANSFORM( loClase._AddObject_Count + 1 ) ;
, THIS.defined_PAM2Memo( loClase ) ;
, loClase._RESERVED1 ;
, loClase._RESERVED2 ;
, loClase._RESERVED3 ;
, loClase._ClassIcon ;
, loClase._ProjectClassIcon ;
, loClase._Scale ;
@@ -3265,11 +3292,12 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ;
, laBloquesExclusion(1,2), lnBloquesExclusion, I, toModulo
LOCAL lnCodError, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ;
, laBloquesExclusion(1,2), lnBloquesExclusion, I
STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version
STORE '' TO lcLine, lcSourceFile
STORE NULL TO loReg, toModulo
@@ -3286,9 +3314,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
THIS.escribirArchivoBin( @toModulo )
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -3297,7 +3323,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
@@ -3425,14 +3451,14 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
, loClase._BaseClass ;
, loClase._ObjName ;
, loClase._Parent ;
, THIS.classProps2Memo( loClase ) ;
, THIS.hiddenAndProtected_PAM( loClase ) ;
, THIS.classMethods2Memo( loClase ) ;
, loClase._PROPERTIES ;
, loClase._PROTECTED ;
, loClase._METHODS ;
, loClase._Ole ;
, loClase._Ole2 ;
, '' ;
, TRANSFORM( loClase._AddObject_Count + 1 ) ;
, THIS.defined_PAM2Memo( loClase ) ;
, loClase._RESERVED1 ;
, loClase._RESERVED2 ;
, loClase._RESERVED3 ;
, loClase._ClassIcon ;
, loClase._ProjectClassIcon ;
, loClase._Scale ;
@@ -3444,7 +3470,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
THIS.insert_AllObjects( @loClase )
IF NOT loClase._BaseClass == 'dataenvironment'
IF .F. &&NOT loClase._BaseClass == 'dataenvironment'
*-- Inserto el COMMENT
INSERT INTO TABLABIN ;
( PLATFORM ;
@@ -3501,8 +3527,6 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
CATCH TO loEx
lnCodError = loEx.ERRORNO
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -3514,7 +3538,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
ENDDEFINE
@@ -3540,12 +3564,16 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
#IF .F.
LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
#ENDIF
TRY
LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ;
, laBloquesExclusion(1,2), lnBloquesExclusion, I ;
, loProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
LOCAL lnCodError, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ;
, laBloquesExclusion(1,2), lnBloquesExclusion, I
STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version
STORE '' TO lcLine, lcSourceFile
STORE NULL TO loReg, toModulo
@@ -3557,14 +3585,12 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
*THIS.identificarBloquesDeExclusion( @laCodeLines, .F., @laBloquesExclusion, @lnBloquesExclusion )
*-- Identifico el inicio/fin de bloque, definici<63>n, cabecera y cuerpo de cada clase
THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @loProject )
THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toProject )
THIS.escribirArchivoBin( @loProject )
THIS.escribirArchivoBin( @toProject )
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -3573,7 +3599,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
@@ -4269,7 +4295,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
ENDPROC
@@ -4301,38 +4328,36 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*******************************************************************************************************************
PROCEDURE get_ADD_OBJECT_METHODS
LPARAMETERS toRegObj, toRegClass, tcMethods
LPARAMETERS toRegObj, toRegClass, tcMethods, taMethods, taCode, tnMethodCount
TRY
LOCAL laMethods(1,3), laCode(1), lnMethodCount
THIS.SortMethod( toRegObj.METHODS, @laMethods, @laCode, '', @lnMethodCount )
THIS.SortMethod( toRegObj.METHODS, @taMethods, @taCode, '', @tnMethodCount )
*-- Ubico los m<>todos protegidos y les cambio la definici<63>n.
*-- Los m<>todos se deben generar con la ruta completa, porque si no es imposible saber a que objeto corresponden,
*-- o si son de la clase.
IF lnMethodCount > 0 THEN
FOR I = 1 TO lnMethodCount
IF tnMethodCount > 0 THEN
FOR I = 1 TO tnMethodCount
IF EMPTY(toRegObj.PARENT)
lcMethodName = toRegObj.OBJNAME + '.' + laMethods(I,1)
tcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1)
ELSE
DO CASE
CASE '.' $ toRegObj.PARENT
lcMethodName = SUBSTR(toRegObj.PARENT, AT('.', toRegObj.PARENT) + 1) + '.' + toRegObj.OBJNAME + '.' + laMethods(I,1)
tcMethodName = SUBSTR(toRegObj.PARENT, AT('.', toRegObj.PARENT) + 1) + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1)
CASE LEFT(toRegObj.PARENT + '.', LEN( toRegClass.OBJNAME + '.' ) ) == toRegClass.OBJNAME + '.'
lcMethodName = toRegObj.OBJNAME + '.' + laMethods(I,1)
tcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1)
OTHERWISE
lcMethodName = toRegObj.PARENT + '.' + toRegObj.OBJNAME + '.' + laMethods(I,1)
tcMethodName = toRegObj.PARENT + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1)
ENDCASE
ENDIF
*-- Genero el m<>todo SIN indentar, ya que se hace luego
TEXT TO tcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<'PROCEDURE'>> <<lcMethodName>>
<<THIS.IndentarMemo( laCode(laMethods(I,2)) )>>
<<'PROCEDURE'>> <<tcMethodName>>
<<THIS.IndentarMemo( taCode(taMethods(I,2)) )>>
<<'ENDPROC'>>
ENDTEXT
ENDFOR
@@ -4762,8 +4787,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT
ENDIF
ENDPROC
*******************************************************************************************************************
PROCEDURE write_CABECERA_REPORTE
LPARAMETERS toReg
@@ -4772,7 +4797,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
LOCAL lc_TAG_REPORTE
lc_TAG_REPORTE_I = '<' + C_TAG_REPORTE + ' '
lc_TAG_REPORTE_F = ' ></' + C_TAG_REPORTE + '>'
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<lc_TAG_REPORTE_I>>
ENDTEXT
@@ -4873,8 +4898,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
RETURN
ENDPROC
*******************************************************************************************************************
PROCEDURE write_DETALLE_REPORTE
LPARAMETERS toReg
@@ -4883,7 +4908,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
LOCAL lc_TAG_REPORTE
lc_TAG_REPORTE_I = '<' + C_TAG_REPORTE + ' '
lc_TAG_REPORTE_F = ' ></' + C_TAG_REPORTE + '>'
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<lc_TAG_REPORTE_I>>
ENDTEXT
@@ -4984,8 +5009,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
RETURN
ENDPROC
*******************************************************************************************************************
PROCEDURE write_DATAENVIRONMENT_REPORTE
LPARAMETERS toReg
@@ -4994,7 +5019,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
LOCAL lc_TAG_REPORTE
lc_TAG_REPORTE_I = '<' + C_TAG_REPORTE + ' '
lc_TAG_REPORTE_F = ' ></' + C_TAG_REPORTE + '>'
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<lc_TAG_REPORTE_I>>
ENDTEXT
@@ -5716,10 +5741,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, loEx AS EXCEPTION, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1)
STORE 0 TO lnCodError, lnLastClass
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
@@ -5807,13 +5833,16 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
THIS.write_ENDDEFINE_SiCorresponde( lnLastClass )
*-- Genero el VC2
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
IF THIS.l_Test
toModulo = C_FB2PRG_CODE
ELSE
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
ENDIF
ENDIF
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -5825,7 +5854,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
ENDDEFINE
@@ -5842,10 +5871,15 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
#IF .F.
LOCAL toModulo AS CL_MODULO OF 'FOXBIN2PRG.PRG'
#ENDIF
TRY
LOCAL lnCodError, loEx AS EXCEPTION, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1)
STORE 0 TO lnCodError, lnLastClass
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
@@ -5856,6 +5890,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE
SET ORDER TO 0 IN TABLABIN
*toModulo = NULL
*toModulo = CREATEOBJECT('CL_MODULO')
THIS.write_PROGRAM_HEADER()
THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle )
@@ -5886,7 +5923,10 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" ;
AND (EMPTY(TABLABIN.PARENT) ;
AND (TABLABIN.BASECLASS == 'dataenvironment' OR TABLABIN.BASECLASS == 'form' OR TABLABIN.BASECLASS == 'formset' ) )
*loRegClass = NULL
SCATTER MEMO NAME loRegClass
*toModulo.add_Class( loRegClass )
lcObjName = ALLTRIM(loRegClass.OBJNAME)
THIS.write_ENDDEFINE_SiCorresponde( lnLastClass )
@@ -5949,13 +5989,16 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
THIS.write_ENDDEFINE_SiCorresponde( lnLastClass )
*-- Genero el SC2
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
IF THIS.l_Test
toModulo = C_FB2PRG_CODE
ELSE
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
ENDIF
ENDIF
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -5963,11 +6006,13 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
THROW
FINALLY
loRegObj = NULL
loRegClass = NULL
USE IN (SELECT("TABLABIN"))
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
ENDDEFINE
@@ -5998,7 +6043,8 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo ;
@@ -6243,18 +6289,22 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- Genero el PJ2
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
IF THIS.l_Test
toModulo = C_FB2PRG_CODE
ELSE
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
ENDIF
*COMPILE ( THIS.c_outputFile )
ENDIF
*COMPILE ( THIS.c_outputFile )
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
lnCodError = toEx.ERRORNO
DO CASE
CASE lnCodError = 2062 && The specified key already exists ==> loProject.ADD( loReg, loReg.NAME )
loEx.USERVALUE = 'Archivo duplicado: ' + loReg.NAME
toEx.USERVALUE = 'Archivo duplicado: ' + loReg.NAME
ENDCASE
IF THIS.l_Debug AND _VFP.STARTMODE = 0
@@ -6268,7 +6318,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
ENDDEFINE
@@ -6285,17 +6335,18 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
*******************************************************************************************************************
PROCEDURE Convertir
DODEFAULT()
LPARAMETERS toModulo, toEx AS EXCEPTION
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, loEx AS EXCEPTION, loRegCab, loRegDataEnv, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
LOCAL lnCodError, loRegCab, loRegDataEnv, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1)
STORE 0 TO lnCodError, lnLastClass
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
STORE NULL TO loRegObj, loRegCab, loRegDataEnv
USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN_0
GO TOP && Tiene que ser objType = 1
SCATTER MEMO NAME loRegCab
GOTO BOTTOM && Tiene que ser objType = 25
@@ -6316,7 +6367,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
SELECT TABLABIN
GOTO TOP
THIS.write_CABECERA_REPORTE( @loRegCab )
SCAN ALL
SCATTER MEMO NAME loRegObj
THIS.write_DETALLE_REPORTE( @loRegObj )
@@ -6325,13 +6376,16 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
THIS.write_DATAENVIRONMENT_REPORTE( @loRegDataEnv )
*-- Genero el SC2
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
IF THIS.l_Test
toModulo = C_FB2PRG_CODE
ELSE
IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0
ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly'
ENDIF
ENDIF
CATCH TO loEx
lnCodError = loEx.ERRORNO
CATCH TO toEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
@@ -6344,7 +6398,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
ENDTRY
RETURN lnCodError
RETURN
ENDPROC
ENDDEFINE
@@ -6523,9 +6577,21 @@ DEFINE CLASS CL_CLASE AS CL_BASE
+ [<memberdata name="_scale" type="property" display="_Scale"/>] ;
+ [<memberdata name="_timestamp" type="property" display="_TimeStamp"/>] ;
+ [<memberdata name="_uniqueid" type="property" display="_UniqueID"/>] ;
+ [<memberdata name="_user" type="property" display="_User"/>] ;
+ [<memberdata name="_properties" type="property" display="_PROPERTIES"/>] ;
+ [<memberdata name="_protected" type="property" display="_PROTECTED"/>] ;
+ [<memberdata name="_methods" type="property" display="_METHODS"/>] ;
+ [<memberdata name="_reserved1" type="property" display="_RESERVED1"/>] ;
+ [<memberdata name="_reserved2" type="property" display="_RESERVED2"/>] ;
+ [<memberdata name="_reserved3" type="property" display="_RESERVED3"/>] ;
+ [<memberdata name="_reserved4" type="property" display="_RESERVED4"/>] ;
+ [<memberdata name="_reserved5" type="property" display="_RESERVED5"/>] ;
+ [<memberdata name="_reserved6" type="property" display="_RESERVED6"/>] ;
+ [<memberdata name="_reserved7" type="property" display="_RESERVED7"/>] ;
+ [<memberdata name="_reserved8" type="property" display="_RESERVED8"/>] ;
+ [<memberdata name="_user" type="property" display="_USER"/>] ;
+ [</VFPData>]
DIMENSION _Props[1,2], _AddObjects[1], _Procedures[1]
_Nombre = ''
_ObjName = ''
@@ -6559,6 +6625,17 @@ DEFINE CLASS CL_CLASE AS CL_BASE
_includeFile = ''
_AddObject_Count = 0
_Procedure_Count = 0
_PROPERTIES = ''
_PROTECTED = ''
_METHODS = ''
_RESERVED1 = ''
_RESERVED2 = ''
_RESERVED3 = ''
_RESERVED4 = ''
_RESERVED5 = ''
_RESERVED6 = ''
_RESERVED7 = ''
_RESERVED8 = ''
_User = ''
@@ -6578,11 +6655,12 @@ DEFINE CLASS CL_CLASE AS CL_BASE
************************************************************************************************
PROCEDURE add_Property
LPARAMETERS tcProperty AS STRING, tcComment AS STRING
LPARAMETERS tcProperty AS STRING, tcValue AS STRING, tcComment AS STRING
THIS._Prop_Count = THIS._Prop_Count + 1
DIMENSION THIS._Props( THIS._Prop_Count, 2 )
DIMENSION THIS._Props( THIS._Prop_Count, 3 )
THIS._Props( THIS._Prop_Count, 1 ) = tcProperty
THIS._Props( THIS._Prop_Count, 2 ) = tcComment
THIS._Props( THIS._Prop_Count, 2 ) = tcValue
THIS._Props( THIS._Prop_Count, 3 ) = tcComment
ENDPROC
@@ -6703,10 +6781,11 @@ DEFINE CLASS CL_OBJETO AS CL_BASE
************************************************************************************************
PROCEDURE add_Property
LPARAMETERS tcProperty
LPARAMETERS tcProperty AS STRING, tcValue AS STRING
THIS._Prop_Count = THIS._Prop_Count + 1
DIMENSION THIS._Props( THIS._Prop_Count, 1 )
DIMENSION THIS._Props( THIS._Prop_Count, 2 )
THIS._Props( THIS._Prop_Count, 1 ) = tcProperty
THIS._Props( THIS._Prop_Count, 2 ) = tcValue
ENDPROC

7
ignore.conf Normal file
View File

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