Changeset: 95 Fin desarrollo conversión DBFs y DBCs con Unit Testing

This commit is contained in:
fernando
2013-12-18 00:05:05 +01:00
parent e6ffd7396a
commit 1733f605df
7 changed files with 2474 additions and 88 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,145 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.14" SourceFile="C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.DBF" Generated="2013/12/11 19:43:58" /> (Para uso con Visual FoxPro 9.0)
*
<TABLE>
<memofile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.FPT</memofile>
<codepage>1252</codepage>
<database>fb2p_dbc.dbc</database>
<filetype>0x00000031</filetype>
<filetype_descrip>Visual FoxPro, autoincrement enabled</filetype_descrip>
<FIELDS>
<FIELD>
<name>NOMBRE</name>
<type>C</type>
<width>30</width>
<decimals>0</decimals>
<null>.F.</null>
<nocptran>.F.</nocptran>
<field_valid_exp>.NOT.EMPTY(nombre)</field_valid_exp>
<field_valid_text>"El nombre est<73> vac<61>o"</field_valid_text>
<field_default_value>"."</field_default_value>
<table_valid_exp>edad>10</table_valid_exp>
<table_valid_text>"Mensaje de error de la regla edad > 10"</table_valid_text>
<longtablename>NOMBRELARGODELDBF</longtablename>
<ins_trig_exp>__ri_insert_nombrelargodeldbf().AND.(ins_trg())</ins_trig_exp>
<upd_trig_exp>__ri_update_nombrelargodeldbf().AND.(upd_trg())</upd_trig_exp>
<del_trig_exp>del_trg()</del_trig_exp>
<tablecomment>Comentario de la tabla "fb2p_dbf"</tablecomment>
<autoinc_nextval>0</autoinc_nextval>
<autoinc_step>0</autoinc_step>
</FIELD>
<FIELD>
<name>EDAD</name>
<type>N</type>
<width>3</width>
<decimals>0</decimals>
<null>.F.</null>
<nocptran>.F.</nocptran>
<field_valid_exp></field_valid_exp>
<field_valid_text></field_valid_text>
<field_default_value></field_default_value>
<table_valid_exp></table_valid_exp>
<table_valid_text></table_valid_text>
<longtablename></longtablename>
<ins_trig_exp></ins_trig_exp>
<upd_trig_exp></upd_trig_exp>
<del_trig_exp></del_trig_exp>
<tablecomment></tablecomment>
<autoinc_nextval>0</autoinc_nextval>
<autoinc_step>0</autoinc_step>
</FIELD>
<FIELD>
<name>ID</name>
<type>I</type>
<width>4</width>
<decimals>0</decimals>
<null>.F.</null>
<nocptran>.F.</nocptran>
<field_valid_exp></field_valid_exp>
<field_valid_text></field_valid_text>
<field_default_value></field_default_value>
<table_valid_exp></table_valid_exp>
<table_valid_text></table_valid_text>
<longtablename></longtablename>
<ins_trig_exp></ins_trig_exp>
<upd_trig_exp></upd_trig_exp>
<del_trig_exp></del_trig_exp>
<tablecomment></tablecomment>
<autoinc_nextval>10</autoinc_nextval>
<autoinc_step>2</autoinc_step>
</FIELD>
<FIELD>
<name>BIGTEXT</name>
<type>M</type>
<width>4</width>
<decimals>0</decimals>
<null>.F.</null>
<nocptran>.F.</nocptran>
<field_valid_exp></field_valid_exp>
<field_valid_text></field_valid_text>
<field_default_value></field_default_value>
<table_valid_exp></table_valid_exp>
<table_valid_text></table_valid_text>
<longtablename></longtablename>
<ins_trig_exp></ins_trig_exp>
<upd_trig_exp></upd_trig_exp>
<del_trig_exp></del_trig_exp>
<tablecomment></tablecomment>
<autoinc_nextval>0</autoinc_nextval>
<autoinc_step>0</autoinc_step>
</FIELD>
<FIELD>
<name>DEPTO</name>
<type>C</type>
<width>10</width>
<decimals>0</decimals>
<null>.F.</null>
<nocptran>.F.</nocptran>
<field_valid_exp></field_valid_exp>
<field_valid_text></field_valid_text>
<field_default_value></field_default_value>
<table_valid_exp></table_valid_exp>
<table_valid_text></table_valid_text>
<longtablename></longtablename>
<ins_trig_exp></ins_trig_exp>
<upd_trig_exp></upd_trig_exp>
<del_trig_exp></del_trig_exp>
<tablecomment></tablecomment>
<autoinc_nextval>0</autoinc_nextval>
<autoinc_step>0</autoinc_step>
</FIELD>
</FIELDS>
<indexFile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.CDX</indexFile>
<INDEXES>
<INDEX>
<tagname>ID</tagname>
<collate>MACHINE</collate>
<key>ID</key>
<descending>.F.</descending>
<for_exp></for_exp>
</INDEX>
<INDEX>
<tagname>I_NOMBRE</tagname>
<collate>GENERAL</collate>
<key>NOMBRE</key>
<descending>.F.</descending>
<for_exp></for_exp>
</INDEX>
<INDEX>
<tagname>DEPTO</tagname>
<collate>MACHINE</collate>
<key>DEPTO</key>
<descending>.F.</descending>
<for_exp></for_exp>
</INDEX>
</INDEXES>
</TABLE>

View File

@@ -0,0 +1,409 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.14" SourceFile="C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_FREE.DBF" Generated="2013/12/11 21:33:10" /> (Para uso con Visual FoxPro 9.0)
*
<TABLE>
<MemoFile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_FREE.FPT</MemoFile>
<CodePage>1252</CodePage>
<LastUpdate>2013/12/11</LastUpdate>
<Database></Database>
<FileType>0x00000032</FileType>
<FileType_Descrip>Visual FoxPro, Varchar, Varbinary, or Blob-enabled</FileType_Descrip>
<FIELDS>
<FIELD>
<Name>CARACTER</Name>
<Type>C</Type>
<Width>30</Width>
<Decimals>0</Decimals>
<Null>.T.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>FECHA</Name>
<Type>D</Type>
<Width>8</Width>
<Decimals>0</Decimals>
<Null>.T.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>FECHORA</Name>
<Type>T</Type>
<Width>8</Width>
<Decimals>0</Decimals>
<Null>.T.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>LOGICO</Name>
<Type>L</Type>
<Width>1</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>DOBLE</Name>
<Type>B</Type>
<Width>8</Width>
<Decimals>5</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>FLOTANTE</Name>
<Type>F</Type>
<Width>10</Width>
<Decimals>6</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>NUMERICO</Name>
<Type>N</Type>
<Width>12</Width>
<Decimals>3</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>BLOB</Name>
<Type>W</Type>
<Width>4</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>MONEDA</Name>
<Type>Y</Type>
<Width>8</Width>
<Decimals>4</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>GENERAL</Name>
<Type>G</Type>
<Width>4</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>ENTERO</Name>
<Type>I</Type>
<Width>4</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>NOTAS</Name>
<Type>M</Type>
<Width>4</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>VAR_BINARY</Name>
<Type>Q</Type>
<Width>35</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>VAR_CHAR</Name>
<Type>V</Type>
<Width>36</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>NOTASBIN</Name>
<Type>M</Type>
<Width>4</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.T.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>CARC_BIN</Name>
<Type>C</Type>
<Width>30</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.T.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>VARCHARBIN</Name>
<Type>V</Type>
<Width>37</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.T.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>0</Autoinc_Nextval>
<Autoinc_Step>0</Autoinc_Step>
</FIELD>
<FIELD>
<Name>ID_AUTOINC</Name>
<Type>I</Type>
<Width>4</Width>
<Decimals>0</Decimals>
<Null>.F.</Null>
<NoCPTran>.F.</NoCPTran>
<Field_Valid_Exp></Field_Valid_Exp>
<Field_Valid_Text></Field_Valid_Text>
<Field_Default_Value></Field_Default_Value>
<Table_Valid_Exp></Table_Valid_Exp>
<Table_Valid_Text></Table_Valid_Text>
<LongTableName></LongTableName>
<Ins_Trig_Exp></Ins_Trig_Exp>
<Upd_Trig_Exp></Upd_Trig_Exp>
<Del_Trig_Exp></Del_Trig_Exp>
<TableComment></TableComment>
<Autoinc_Nextval>30</Autoinc_Nextval>
<Autoinc_Step>5</Autoinc_Step>
</FIELD>
</FIELDS>
<indexFile>C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_FREE.CDX</indexFile>
<INDEXES>
<INDEX>
<TagName>LOGICO</TagName>
<TagType>BINARY</TagType>
<Key>LOGICO</Key>
<Filter></Filter>
<Order>ASCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
<INDEX>
<TagName>ENTERO</TagName>
<TagType>REGULAR</TagType>
<Key>ENTERO</Key>
<Filter></Filter>
<Order>DESCENDING</Order>
<Collate>MACHINE</Collate>
</INDEX>
<INDEX>
<TagName>CARACTER</TagName>
<TagType>CANDIDATE</TagType>
<Key>CARACTER</Key>
<Filter>.NOT.EMPTY(caracter)</Filter>
<Order>ASCENDING</Order>
<Collate>GENERAL</Collate>
</INDEX>
</INDEXES>
</TABLE>

View File

@@ -0,0 +1,148 @@
DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbc AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_dbc OF ft__foxbin2prg__c_conversor_prg_a_dbc.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
#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
IF ISNULL(toEx)
*-- Validaciones en m<>todo
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_ParaElArchivo_FB2P_DBC_DC2_YRegenerarEl_DBC_ConTodosSusObjetos
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
, laCampos_IN(1,18), laCampos_OUT(1,18), lnFields_OUT, lnFields_IN, I, X, lcDC2, lcDC3 ;
, 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")
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'FB2P_DBC.DBC'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
oFXU_LIB.copiarArchivosParaTest( 'EVENTSFILE.PRG' )
*-- Genero el DC2
loCnv.Ejecutar( FORCEEXT(lc_File,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
*-- Regenero el DBC
loCnv.Ejecutar( FORCEEXT(lc_File,'DC2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
*-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'DC2')) TO (FORCEEXT(lc_OutputFile,'DC3'))
*-- Genero el DC2 desde el DBC regenerado
*WAIT WINDOW TIMEOUT 2 && Para forzar una diferencia de 2 segundos entre el DC2 y el DC3
loCnv.Ejecutar( FORCEEXT(lc_File,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
*-- Comparo los DC2 y DC3
lcDC2 = STREXTRACT( FILETOSTR( FORCEEXT(lc_File,'DC2') ), '<DATABASE>', '</DATABASE>' )
lcDC3 = STREXTRACT( FILETOSTR( FORCEEXT(lc_File,'DC3') ), '<DATABASE>', '</DATABASE>' )
*-- Visualizaci<63>n de valores
THIS.messageout( 'Bytes DC3: ' + TRANSFORM(LEN(lcDC3)) )
THIS.messageout( 'Bytes DC2: ' + TRANSFORM(LEN(lcDC2)) )
*-- Evaluaci<63>n de valores
this.assertequals( lcDC2, lcDC3, '[Comparaci<63>n DC2 y DC3]' )
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado )
FINALLY
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
ENDFUNC
ENDDEFINE

View File

@@ -0,0 +1,367 @@
DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase.prg
#IF .F.
LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_dbf OF ft__foxbin2prg__c_conversor_prg_a_dbf.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
#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
IF ISNULL(toEx)
*-- Validaciones en m<>todo
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_ParaElArchivo_FB2P_FREE_DB2_YValidarQueGenereUn_DBF_ConTodosLosCamposYLasMismasDefinicionesYOrden
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
, laCampos_IN(1,18), laCampos_OUT(1,18), lnFields_OUT, lnFields_IN, I, X ;
, 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")
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'FB2P_FREE.DB2'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
oFXU_LIB.copiarArchivosParaTest( lc_File )
loCnv.Ejecutar( lc_File, '', '', '', '1', '0', '1',.F.,.F.,.T. )
SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SELECT 0
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
lnFields_OUT = AFIELDS( laCampos_OUT, 'TABLABIN' )
lnFields_IN = AFIELDS( laCampos_IN, 'ARCHIVOBIN_IN' )
*-- Visualizaci<63>n de valores
THIS.messageout( 'Cantidad de campos: ' + TRANSFORM(lnFields_OUT) )
THIS.messageout( '' )
THIS.messageout( PADR('Nombre',12) + ' ' + PADC('Tipo',4) + ' ' + PADL('Long',4) + ' ' + PADL('Dec',4) )
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
FOR I = 1 TO lnFields_IN
THIS.messageout( PADR(laCampos_IN(I,1),12) + ' ' + PADC(laCampos_IN(I,2),4) + ' ' + PADL(laCampos_IN(I,3),4) + ' ' + PADL(laCampos_IN(I,4),4) )
ENDFOR
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
*-- Evaluaci<63>n de valores
this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' )
FOR I = 1 TO lnFields_IN
FOR X = 1 TO 18
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
ENDFOR
ENDFOR
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado )
FINALLY
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElArchivo_FB2P_FREE_DB2_YValidarQueGenereUn_DBF_ConLosMismosIndices
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
, laIndices_IN(1,18), laIndices_OUT(1,18), lnIndices_OUT, lnIndices_IN, I, X ;
, 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")
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'FB2P_FREE.DB2'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
oFXU_LIB.copiarArchivosParaTest( lc_File )
loCnv.Ejecutar( lc_File, '', '', '', '1', '0', '1',.F.,.F.,.T. )
SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SELECT 0
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
lnIndices_IN = ATAGINFO( laIndices_IN, '', 'ARCHIVOBIN_IN' )
lnIndices_OUT = ATAGINFO( laIndices_OUT, '', 'TABLABIN' )
*-- Visualizaci<63>n de valores
THIS.messageout( 'Cantidad de <20>ndices para [' + DBF("TABLABIN") + ']: ' + TRANSFORM(lnIndices_OUT) )
THIS.messageout( '' )
THIS.messageout( PADR('Tag',12) + ' ' + PADR('Tipo',12) + ' ' + PADR('Clave',30) + ' ' + PADR('Filtro',30) + ' ' + PADR('Order',12) + ' ' + PADR('Collate',12) )
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
FOR I = 1 TO lnIndices_OUT
THIS.messageout( PADR(laIndices_OUT(I,1),12) + ' ' + PADR(laIndices_OUT(I,2),12) + ' ' + PADR(laIndices_OUT(I,3),30) + ' ' + PADR(laIndices_OUT(I,4),30) ;
+ ' ' + PADR(laIndices_OUT(I,5),12) + ' ' + PADR(laIndices_OUT(I,6),12) )
ENDFOR
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
*-- Evaluaci<63>n de valores
this.assertequals( lnIndices_OUT, lnIndices_IN, '[Cantidad de campos IN y OUT]' )
FOR I = 1 TO lnIndices_IN
FOR X = 1 TO 6
THIS.assertequals( laIndices_IN(I,X), laIndices_OUT(I,X), '[Comparando estructura del indice ' + laIndices_IN(I,1) + ']' )
ENDFOR
ENDFOR
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado )
FINALLY
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaTabla_FB2P_FREE_DBF_YValidarQueGenereUn_DB2yDBF_ConTodosLosCamposYLasMismasDefinicionesYOrden
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
, laCampos_IN(1,18), laCampos_OUT(1,18), lnFields_OUT, lnFields_IN, I, X ;
, 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")
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'FB2P_FREE.DB2'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
loCnv.Ejecutar( FORCEEXT(lc_File,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
loCnv.Ejecutar( FORCEEXT(lc_File,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SELECT 0
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
lnFields_OUT = AFIELDS( laCampos_OUT, 'TABLABIN' )
lnFields_IN = AFIELDS( laCampos_IN, 'ARCHIVOBIN_IN' )
*-- Visualizaci<63>n de valores
THIS.messageout( 'Cantidad de campos: ' + TRANSFORM(lnFields_OUT) )
THIS.messageout( '' )
THIS.messageout( PADR('Nombre',12) + ' ' + PADC('Tipo',4) + ' ' + PADL('Long',4) + ' ' + PADL('Dec',4) )
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
FOR I = 1 TO lnFields_IN
THIS.messageout( PADR(laCampos_IN(I,1),12) + ' ' + PADC(laCampos_IN(I,2),4) + ' ' + PADL(laCampos_IN(I,3),4) + ' ' + PADL(laCampos_IN(I,4),4) )
ENDFOR
THIS.messageout( PADR('----------',12) + ' ' + PADC('----',4) + ' ' + PADL('----',4) + ' ' + PADL('---',4) )
*-- Evaluaci<63>n de valores
this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' )
FOR I = 1 TO lnFields_IN
FOR X = 1 TO 18
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
ENDFOR
ENDFOR
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado )
FINALLY
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaTabla_FB2P_FREE_DBF_YValidarQueGenereUn_DB2yDBF_ConLosMismosIndices
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
, laIndices_IN(1,18), laIndices_OUT(1,18), lnIndices_OUT, lnIndices_IN, I, X ;
, 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")
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'FB2P_FREE.DB2'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
loCnv.Ejecutar( FORCEEXT(lc_File,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
loCnv.Ejecutar( FORCEEXT(lc_File,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SELECT 0
USE (FORCEEXT(lc_OutputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS TABLABIN
lnIndices_IN = ATAGINFO( laIndices_IN, '', 'ARCHIVOBIN_IN' )
lnIndices_OUT = ATAGINFO( laIndices_OUT, '', 'TABLABIN' )
*-- Visualizaci<63>n de valores
THIS.messageout( 'Cantidad de <20>ndices para [' + DBF("TABLABIN") + ']: ' + TRANSFORM(lnIndices_OUT) )
THIS.messageout( '' )
THIS.messageout( PADR('Tag',12) + ' ' + PADR('Tipo',12) + ' ' + PADR('Clave',30) + ' ' + PADR('Filtro',30) + ' ' + PADR('Order',12) + ' ' + PADR('Collate',12) )
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
FOR I = 1 TO lnIndices_OUT
THIS.messageout( PADR(laIndices_OUT(I,1),12) + ' ' + PADR(laIndices_OUT(I,2),12) + ' ' + PADR(laIndices_OUT(I,3),30) + ' ' + PADR(laIndices_OUT(I,4),30) ;
+ ' ' + PADR(laIndices_OUT(I,5),12) + ' ' + PADR(laIndices_OUT(I,6),12) )
ENDFOR
THIS.messageout( PADR('----------',12) + ' ' + PADR('----------',12) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------------------------',30) + ' ' + PADR('----------',12) + ' ' + PADR('----------',12) )
*-- Evaluaci<63>n de valores
this.assertequals( lnIndices_OUT, lnIndices_IN, '[Cantidad de campos IN y OUT]' )
FOR I = 1 TO lnIndices_IN
FOR X = 1 TO 6
THIS.assertequals( laIndices_IN(I,X), laIndices_OUT(I,X), '[Comparando estructura del indice ' + laIndices_IN(I,1) + ']' )
ENDFOR
ENDFOR
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado )
FINALLY
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
ENDFUNC
ENDDEFINE

View File

@@ -298,7 +298,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
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
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SCAN ALL FOR NOT DELETED()
*-- DATOS ESPERADOS
@@ -318,7 +318,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
LOCATE FOR UNIQUEID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIBOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIVOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ENDIF
SCATTER MEMO NAME loReg
@@ -332,7 +332,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
USE IN (SELECT("ARCHIVOBIN_IN"))
ENDTRY
ENDFUNC
@@ -372,7 +372,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
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
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SCAN ALL FOR NOT DELETED()
*-- DATOS ESPERADOS
@@ -392,7 +392,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
LOCATE FOR UNIQUEID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIBOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIVOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ENDIF
SCATTER MEMO NAME loReg
@@ -406,7 +406,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
USE IN (SELECT("ARCHIVOBIN_IN"))
ENDTRY
ENDFUNC
@@ -444,7 +444,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
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
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Form',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
@@ -485,7 +485,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
@@ -526,7 +526,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
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
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
@@ -567,7 +567,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
@@ -608,7 +608,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
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
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
@@ -649,7 +649,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY
@@ -690,7 +690,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
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
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
@@ -732,7 +732,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
, loReg_Esperado, loReg, lcTipoBinario )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
USE IN (SELECT("ARCHIVOBIN_IN"))
USE IN (SELECT("TABLABIN"))
ENDTRY