* test_conectare_roa.prg - verifica drumul de initializare CU conectare la Oracle. * Ruleaza cu datele din settings.ini; daca baza nu e accesibila, testul trebuie sa raporteze * esecul si sa iasa - NU sa ramana agatat pe un dialog de login (SQLSetProp DispLogin). * * vfp9.exe -A -T "Teste\test_conectare_roa.prg" * Nu face parte din suita implicita: depinde de reteaua/serverul Oracle. SET SAFETY OFF SET TALK OFF PUBLIC gcUILog, gcSyncDir, gnTestFail gnTestFail = 0 LOCAL lcTestDir, llConectat lcTestDir = ADDBS(JUSTPATH(SYS(16, 0))) gcUILog = lcTestDir + 'test_conectare_roa_log.txt' gcSyncDir = lcTestDir + 'uisync\' IF !DIRECTORY(gcSyncDir) MD (gcSyncDir) ENDIF STRTOFILE('START ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) * fara dialog de login: headless, un prompt ODBC ar bloca procesul la nesfarsit SQLSETPROP(0, 'DispLogin', 3) llConectat = DO_CONECTARE(lcTestDir) HarnessLog('gnHandle = ' + TRANSFORM(gnHandle)) TestAssert(TYPE('goConn') = 'O', 'goConn instantiat chiar si fara conectare') TestAssert(TYPE('gnHandle') = 'N', 'gnHandle este numeric') IF llConectat TestAssert(gnHandle > 0, 'conectare reusita la ' + ALLTRIM(goApp.oSettings.host)) LOCAL lnSucces lnSucces = goExecutor.oExecute(GetHash('cSql=>select 1 as unu from dual??cCursor=>cPing')) TestAssertEqual(1, lnSucces, 'interogare de test executata') IF USED('cPing') TestAssertEqual(1, cPing.unu, 'baza a raspuns corect') USE IN (SELECT('cPing')) ENDIF goConn.Disconnect() TestAssert(goConn.GetHandle() <= 0, 'deconectare reusita') ELSE HarnessLog('Conectare esuata (host ' + ALLTRIM(goApp.oSettings.host) + ; '). Testul a iesit controlat, fara sa ramana agatat.') TestAssert(gnHandle <= 0, 'esecul de conectare e raportat, nu ascuns') ENDIF HarnessLog('REZULTAT: ' + TestRezultat()) DO HarnessDone WITH TestRezultat() QUIT FUNCTION DO_CONECTARE LPARAMETERS tcTestDir LOCAL llOk llOk = .F. DO (tcTestDir + 'test_init_env_auto.prg') WITH .T. SET PROCEDURE TO (tcTestDir + 'ui_harness.prg') ADDITIVE SET PROCEDURE TO (tcTestDir + 'mock_amessagebox.prg') ADDITIVE DO HarnessInit llOk = (TYPE('gnHandle') = 'N' AND gnHandle > 0) RETURN llOk ENDFUNC