* test_parteneri_roa.prg - cautarea partenerului la import, pe datele reale din ROA. * * Reguli verificate: * - cautarea se face pe codul cu care partenerul se salveaza (GetCodFiscalValid), nu pe cel brut * - cand mai multi parteneri au acelasi cod fiscal, se ia cel mai vechi (id_part minim) * * Testul e READ ONLY (doar SELECT) si NU face parte din suita implicita: cere Oracle. * vfp9.exe -A -T "D:\PROIECTE\FLORA\FLORA2ROA\Teste\test_parteneri_roa.prg" #INCLUDE "comun.h" SET SAFETY OFF SET TALK OFF PUBLIC gcUILog, gcSyncDir, gnTestFail, gnMockRaspuns, gcMockUltimMesaj, gnMockUltimTip gnTestFail = 0 gnMockRaspuns = 6 gcMockUltimMesaj = '' gnMockUltimTip = 0 LOCAL lcTestDir, lcSqlPart, lnSucces, lnTip, lcCodSalvat, lnIdVechi, lnIdGasit lcTestDir = ADDBS(JUSTPATH(SYS(16, 0))) gcUILog = lcTestDir + 'test_parteneri_roa_log.txt' gcSyncDir = lcTestDir + 'uisync\' IF !DIRECTORY(gcSyncDir) MD (gcSyncDir) ENDIF STRTOFILE('START ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) SQLSETPROP(0, 'DispLogin', 3) DO (lcTestDir + 'test_init_env_auto.prg') WITH .T. SET PROCEDURE TO (lcTestDir + 'ui_harness.prg') ADDITIVE SET PROCEDURE TO (lcTestDir + 'mock_amessagebox.prg') ADDITIVE DO HarnessInit IF TYPE('gnHandle') <> 'N' OR gnHandle <= 0 HarnessLog('Fara conexiune la ROA (' + ALLTRIM(goApp.oSettings.host) + '), testul iese controlat.') DO HarnessDone WITH 'SKIP' QUIT ENDIF DO FORM (gcAppPath + 'frm_import') NAME goImportFrm NOSHOW goImportFrm.WindowType = 0 * un CNP care in ROA e pe mai multi parteneri: se ia cel mai vechi LOCAL lcCnpDublat lcCnpDublat = '1951113297313' lnSucces = goExecutor.oExecute(GetHash("cSql=>select min(id_part) as id_part, count(*) as nr from nom_parteneri " + ; "where replace(upper(cod_fiscal), ' ', '') = '" + m.lcCnpDublat + "' and sters = 0??cCursor=>cAsteptat")) TestAssertEqual(CT_SUCCES, m.lnSucces, 'interogare de control executata') lnIdVechi = NVL(cAsteptat.id_part, 0) HarnessLog('CNP ' + m.lcCnpDublat + ': ' + TRANSFORM(cAsteptat.nr) + ' parteneri, cel mai vechi ' + TRANSFORM(m.lnIdVechi)) TestAssert(m.lnIdVechi > 0, 'CNP-ul de test exista in ROA') * cursorul de cautare, ca in CompleteazaParteneriROA CREATE CURSOR cParteneri (id_part N(10), cod_fiscal C(30) null, denumire C(100) null) lcSqlPart = [select id_part, cod_fiscal, denumire from nom_parteneri where sters = 0 and inactiv = 0] lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlPart + '??cCursor=>cParteneriTemp')) TestAssertEqual(CT_SUCCES, m.lnSucces, 'parteneri ROA cititi') SELECT cParteneri APPEND FROM DBF('cParteneriTemp') INDEX on denumire TAG denumire INDEX on PADR(STRTRAN(cod_fiscal, ' ', ''),30, ' ') TAG cod_fiscal USE IN (SELECT('cParteneriTemp')) * randul din Fidelio cu campurile inversate: CNP in 'serie CI / pasaport' lnTip = 0 lcCodSalvat = GetCodFiscalValid('PX920016', @lnTip, 'STRATON ADRIAN FLORIN', m.lcCnpDublat, '') TestAssertEqual(m.lcCnpDublat, m.lcCodSalvat, 'CNP-ul din serie CI este codul care se salveaza') lnIdGasit = goImportFrm.GetIdPartener(PADR('PX920016', 30, ' '), PADR('STRATON ADRIAN FLORIN', 100, ' ')) TestAssertEqual(0, m.lnIdGasit, 'codul brut din import nu gaseste partenerul') lnIdGasit = goImportFrm.GetIdPartener(PADR(m.lcCodSalvat, 30, ' '), PADR('STRATON ADRIAN FLORIN', 100, ' ')) TestAssertEqual(m.lnIdVechi, m.lnIdGasit, 'codul salvat gaseste partenerul cel mai vechi') lnIdGasit = goImportFrm.GetIdPartenerROA(m.lcCodSalvat) TestAssertEqual(m.lnIdVechi, m.lnIdGasit, 'cautarea in ROA da tot partenerul cel mai vechi') TestAssertEqual(0, goImportFrm.GetIdPartenerROA(''), 'cod fiscal gol: nu se cauta in ROA') goImportFrm.Release() goConn.Disconnect() HarnessLog('REZULTAT: ' + TestRezultat()) DO HarnessDone WITH TestRezultat() QUIT