DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentifyExclusionBlocks as FxuTestCase OF FxuTestCase.prg #IF .F. LOCAL THIS AS ut__foxbin2prg__c_conversor_base__IdentifyExclusionBlocks OF ut__foxbin2prg__c_conversor_base__IdentifyExclusionBlocks.PRG #ENDIF #DEFINE C_PROC 'PROCEDURE' #DEFINE C_ENDPROC 'ENDPROC' #DEFINE C_TEXT 'TEXT' #DEFINE C_ENDTEXT 'ENDTEXT' #DEFINE C_IF_F '#IF' #DEFINE C_ENDIF '#ENDIF' icObj = NULL icFB = NULL ******************************************************************************************************************************************* FUNCTION Setup THIS.icFB = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG") THIS.icObj = NEWOBJECT("c_conversor_prg_a_bin", "FOXBIN2PRG.PRG") ENDFUNC ******************************************************************************************************************************************* FUNCTION TearDown THIS.icObj = NULL THIS.icFB = NULL ENDFUNC ******************************************************************************************************************************************* FUNCTION Evaluate_results LPARAMETERS taExpected_Pos, taPos, tnPos_Count, taLineasExclusion_Esperadas, taLineasExclusion 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 *-- INFORMACIÓN THIS.messageout( "Pares de posiciones esperados: " + TRANSFORM(tnPos_Count) ) FOR I = 1 TO tnPos_Count THIS.messageout( "Posición de Inicio/Fin esperados: " + TRANSFORM(taExpected_Pos(I,1)) + ',' + TRANSFORM(taExpected_Pos(I,2)) ) ENDFOR THIS.messageout( "" ) IF TYPE( "taLineasExclusion",1 ) = "A" FOR I = 1 TO ALEN(taLineasExclusion_Esperadas,1) THIS.messageout( "Línea de exclusión " + STR(I,2) + " esperada: " + TRANSFORM( taLineasExclusion_Esperadas(I) ) ; + IIF( taLineasExclusion_Esperadas(I), ' <', '' ) ) ENDFOR ENDIF THIS.messageout( REPLICATE("*",80) ) *-- TESTS THIS.assertequals( ALEN(taExpected_Pos,1), ALEN(taPos,1), "Posición de Inicio/Fin" ) FOR I = 1 TO tnPos_Count THIS.assertequals( TRANSFORM(taExpected_Pos(I,1)) + ',' + TRANSFORM(taExpected_Pos(I,2)) ; , TRANSFORM(taPos(I,1)) + ',' + TRANSFORM(taPos(I,2)) ; , "Posición de Inicio/Fin" ) ENDFOR IF TYPE( "taLineasExclusion",1 ) = "A" THIS.assertequalsarrays( @taLineasExclusion_Esperadas, @taLineasExclusion, "Líneas de Exclusión" ) ENDIF ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(2,2) ; , laLineasExclusion(12), laLineasExclusion_Esperadas(12) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 3 laExpected_Pos(1,2) = 6 laExpected_Pos(2,1) = 8 laExpected_Pos(2,2) = 11 laLineasExclusion_Esperadas( 3) = .T. laLineasExclusion_Esperadas( 4) = .T. laLineasExclusion_Esperadas( 5) = .T. laLineasExclusion_Esperadas( 6) = .T. laLineasExclusion_Esperadas( 8) = .T. laLineasExclusion_Esperadas( 9) = .T. laLineasExclusion_Esperadas(10) = .T. laLineasExclusion_Esperadas(11) = .T. TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block <> <> value ; <> *-- Code Block <> <> value , <> <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_externo_CuandoOtros_IF_ENDIF_internos_sonEvaluados LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ; , laLineasExclusion(14), laLineasExclusion_Esperadas(14) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 3 laExpected_Pos(1,2) = 13 laLineasExclusion_Esperadas( 3) = .T. laLineasExclusion_Esperadas( 4) = .T. laLineasExclusion_Esperadas( 5) = .T. laLineasExclusion_Esperadas( 7) = .T. laLineasExclusion_Esperadas( 8) = .T. laLineasExclusion_Esperadas( 9) = .T. laLineasExclusion_Esperadas(10) = .T. laLineasExclusion_Esperadas(11) = .T. laLineasExclusion_Esperadas(12) = .T. laLineasExclusion_Esperadas(13) = .T. TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block <> <> <> value ; <> *-- Code Block <> value , <> <> <> <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_Externo_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ; , laLineasExclusion(10), laLineasExclusion_Esperadas(10) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 3 laExpected_Pos(1,2) = 9 laLineasExclusion_Esperadas( 3) = .T. laLineasExclusion_Esperadas( 4) = .T. laLineasExclusion_Esperadas( 5) = .T. laLineasExclusion_Esperadas( 6) = .T. laLineasExclusion_Esperadas( 7) = .T. laLineasExclusion_Esperadas( 8) = .T. laLineasExclusion_Esperadas( 9) = .T. TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block <> <> <> *-- Code Block ; <> <> <> <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_ObtenerLaUbicacionDelBloque_TEXT_ENDTEXT_CuandoCodigoCon_TEXT_ENDTEXT_predominante_esEvaluado LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(2,2) ; , laLineasExclusion(12), laLineasExclusion_Esperadas(12) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 3 laExpected_Pos(1,2) = 6 laExpected_Pos(2,1) = 8 laExpected_Pos(2,2) = 11 laLineasExclusion_Esperadas( 3) = .T. laLineasExclusion_Esperadas( 4) = .T. laLineasExclusion_Esperadas( 5) = .T. laLineasExclusion_Esperadas( 7) = .T. laLineasExclusion_Esperadas( 8) = .T. laLineasExclusion_Esperadas( 9) = .T. laLineasExclusion_Esperadas(10) = .T. laLineasExclusion_Esperadas(11) = .T. TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block <> <> value ; <> *-- Code Block <> <> value , <> <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_ObtenerLaUbicacionDelBloque_TEXT_ENDTEXT_CuandoCodigoConteniendo_TEXT_esEvaluado LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(3,2) ; , laLineasExclusion(14), laLineasExclusion_Esperadas(14) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 3 laExpected_Pos(1,2) = 5 laExpected_Pos(2,1) = 7 laExpected_Pos(2,2) = 9 laExpected_Pos(3,1) = 11 laExpected_Pos(3,2) = 13 laLineasExclusion_Esperadas( 3) = .T. laLineasExclusion_Esperadas( 4) = .T. laLineasExclusion_Esperadas( 5) = .T. laLineasExclusion_Esperadas( 7) = .T. laLineasExclusion_Esperadas( 8) = .T. laLineasExclusion_Esperadas( 9) = .T. laLineasExclusion_Esperadas(11) = .T. laLineasExclusion_Esperadas(12) = .T. laLineasExclusion_Esperadas(13) = .T. TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block <> <> <> *-- Code Block <> <> ; <> *-- Code Block <> <> , <> <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueComienzaConUnCampoLlamado_Text_YLineaAnteriorTerminaEn_PuntoYComa LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 0 laExpected_Pos(1,2) = 0 TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block IF !FOUND() APPEND BLANK REPLACE CURSOR WITH "cawlmain", START WITH 1, END WITH 999999, isnumeric WITH .F., lastused WITH "", ; && Worst case for next line with a field called "text" TEXT WITH "Wärmeobjekte", standard WITH .T. ENDIF *-- Code Block CREATE CURSOR vorlaufsatz (; Satzlaenge C(4),; Satzart C(2),; Folgekennz C(2),; Absender C(2),; Empfaenger C(2),; Rohdatum C(8),; RohZeit C(4),; LFDNr C(4),; && Worst case for next line with a field called "text" Text C(26),; Trenner C(2),; DATUM D NULL,; ZEIT C(8) NULL,; KEYLINEID N(6,0) NULL ) *-- Code Block CREATE CURSOR eomaildbf (; adresse c(8) NULL DEFAULT .NULL.,; zaehler i AUTOINC NEXTVALUE 1 STEP 1,; startseite N(6) NOT NULL DEFAULT 0,; endseite N(6) NOT NULL DEFAULT 0,; vseite N(6) NOT NULL DEFAULT 0,; lfdnr c(30) NULL DEFAULT .NULL.,; linkkey int,; email CHAR(60) NULL DEFAULT .NULL.,; subject VARCHAR(254) NULL DEFAULT .NULL.,; && Worst case for next line with a field called "text" TEXT m NULL DEFAULT .NULL.,; docname c(50) NULL DEFAULT .NULL.,; versenden l NOT NULL DEFAULT .F.,; signierung l NOT NULL DEFAULT .F.,; praefix c(10) NULL DEFAULT .NULL.,; signdatei VARCHAR(254) NULL DEFAULT .NULL.,; signiert l NOT NULL DEFAULT .F.,; ccemail VARCHAR(254) NULL DEFAULT .NULL.,; datei VARCHAR(254) NULL DEFAULT .NULL.) *-- Code Block CREATE CURSOR c_prf_zeilen (; lauf I NULL, ; zeile I NOT NULL, ; Text C(200) NULL ; ) <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , , @lnPos_Count, @laPos ) THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueComienzaConUnCampoLlamado_Text_YLineaAnteriorTerminaEn_Coma LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ; , laLineasExclusion(29), laLineasExclusion_Esperadas(29) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 4 laExpected_Pos(1,2) = 15 FOR I = 4 TO 15 laLineasExclusion_Esperadas(I) = .T. ENDFOR TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> myMethod_B *-- Code Block IF ODBC_Query.odbc <> TO cSQL NOSHOW update menuitems set parent_menuitem_id = ?iParent_menuitem_id, && Worst case for next line with a field called "text" text = ?strText, command = ?strCommand, message = ?strMessage, keyname = ?strKeyname, keylabel = ?strKeylabel, skipfor = ?strSkipfor, sequence = ?iSequence where menuitem_id = ?iMenuitem_id <> ODBC_Query(cSQL) ELSE update menuitems; set parent_menuitem_id = iParent_menuitem_id,; && Worst case for next line with a field called "text" text = strText,; command = strCommand,; message = strMessage,; keyname = strKeyname,; keylabel = strKeylabel,; skipfor = strSkipfor,; sequence = iSequence; where menuitem_id == iMenuitem_id ENDIF <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoExisteUnaPropiedadLlamada_Text LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ; , laLineasExclusion(19), laLineasExclusion_Esperadas(19) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 0 laExpected_Pos(1,2) = 0 TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 DEFINE CLASS test AS custom *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> * *m: text_access *m: text_assign *p: text && Returns all of the text in a text-entry area of a control. * text = PRETEXT PROCEDURE text_access RETURN THIS.text ENDPROC PROCEDURE text_assign LPARAMETERS vNewVal THIS.text = m.vNewVal ENDPROC ENDDEFINE ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ******************************************************************************************************************************************* FUNCTION Deberia_EncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueTerminaConUn_EndText_YLineaAnteriorTerminaEn_Coma LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ; , laLineasExclusion(23), laLineasExclusion_Esperadas(23) LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG" loObj = THIS.icObj *-- Input and expected params STORE '' TO lcMethod laExpected_Pos(1,1) = 3 laExpected_Pos(1,2) = 13 FOR I = 3 TO 13 laLineasExclusion_Esperadas(I) = .T. ENDFOR TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2 <> Init Local lcRowSource <> To lcRowSource Textmerge Noshow Overview,ItemDtl, Forecasting,Forecasting, Purchase Orders,PurchaseOrders, Sales Orders,SalesOrders, Sales History,History, Inventory,Bins, Inventory History,InventoryHistory, Configuration,PartsInfo, Operations,Operations, <> This.RowSource = Chrtran(lcRowSource, CRLF, '') This.ControlSource = 'Thisform.cStartPage' This.Value = ReadSetting('Item Detail Start Page', 'ItemDtl', .F., .T.) <> <> Valid WriteSetting('Item Detail Start Page', This.Value, .F., .T.) Thisform.comboPartno.SetFocus() <> ENDTEXT lnLineas = ALINES( laLineas, lcMethod ) *-- Test loObj.IdentifyExclusionBlocks( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos ) *-- Evaluación de resultados THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion ) ENDFUNC ENDDEFINE