Documentación GVHIDRA 3.1.5
Referencia de la Clase IgepConexionTest

Métodos públicos

 test_destruct ()
 testGetConexion ()
 testGetDsn ()
 testEmpezarTransaccion ()
 testAcabarTransaccion ()
 testConstruirWhere ()
 testConstruirWhereConLike ()
 testCombinarWhere ()
 testConstruirLimite ()
 testConsultar ()
 testOperar ()
 testPrepararOperacion ()
 testPrepararNumero ()
 testPrepararFecha ()
 testTransform_BD2FW ()
 testTransform_BD2User ()
 testCalcularSecuenciaBD ()
 testCalcularSecuencia ()

Métodos protegidos

 setUp ()
 tearDown ()

Atributos privados

 $valida = false

Descripción detallada

Test class for IgepConexion. Generated by PHPUnit on 2008-02-05 at 12:56:39.

Definición en la línea 8 del archivo IgepConexionTest.php.


Documentación de las funciones miembro

setUp ( ) [protected]

Sets up the fixture, for example, opens a network connection. This method is called before a test is executed.

protected

Definición en la línea 20 del archivo IgepConexionTest.php.

                               {
    }
tearDown ( ) [protected]

Tears down the fixture, for example, closes a network connection. This method is called after a test is executed.

protected

Definición en la línea 29 del archivo IgepConexionTest.php.

                                  {
    }
test_destruct ( )
Tareas pendientes:
Implement test_destruct().

Definición en la línea 35 del archivo IgepConexionTest.php.

                                    {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testAcabarTransaccion ( )
Tareas pendientes:
Implement testAcabarTransaccion().

Definición en la línea 75 del archivo IgepConexionTest.php.

                                            {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testCalcularSecuencia ( )
Tareas pendientes:
Implement testCalcularSecuencia().

Definición en la línea 911 del archivo IgepConexionTest.php.

                                            {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testCalcularSecuenciaBD ( )
Tareas pendientes:
Implement testCalcularSecuenciaBD().

Definición en la línea 901 del archivo IgepConexionTest.php.

                                              {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testCombinarWhere ( )
Tareas pendientes:
Implement testCombinarWhere().

Definición en la línea 135 del archivo IgepConexionTest.php.

                                        {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testConstruirLimite ( )
Tareas pendientes:
Implement testConstruirLimite().

Definición en la línea 145 del archivo IgepConexionTest.php.

                                          {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testConstruirWhere ( )

Definición en la línea 82 del archivo IgepConexionTest.php.

                                         {
        $dbs = IgepDB::supportedDBMS();
        foreach ($dbs as $db) {
                $dsn_virtual = array('phptype'=>$db);
                        $stub = $this->getMock('IgepConexion', array('conectar'), array($dsn_virtual), $db.'_MockIgepConexionCW',false);
                        $stub->v_dsn = $dsn_virtual;

                        $this->assertSame("",$stub->construirWhere(array(),''), $db);
                        $this->assertSame("(a=b)",$stub->construirWhere(array(),'(a=b)'), $db);
                        // con where inicial vacia
                        $this->assertSame(" (c1='v1')",$stub->construirWhere(array('c1'=>'v1'),''), $db);
                        $this->assertSame(" (c1=34)",$stub->construirWhere(array('c1'=>34),''), $db);
                        // con where inicial (solo 1 caso, el resto igual)
                        $this->assertSame(" a=b OR (c1='v1')",$stub->construirWhere(array('c1'=>'v1'),' a=b'), $db);
                        // con 2 campos en array (solo 1 caso, el resto igual)
                        $this->assertSame(" (c1='v1' AND c2='v2')",$stub->construirWhere(array('c1'=>'v1','c2'=>'v2'),''), $db);
                        // con 2 campos en array pero uno vacio (solo 1 caso, el resto igual)
                        $this->assertSame(" (c1='v1' AND c2 is null)",$stub->construirWhere(array('c1'=>'v1','c2'=>''),''), $db);
                        $this->assertSame(" (c1='v1' AND c2 is null)",$stub->construirWhere(array('c1'=>'v1','c2'=>0),''), $db);
                        $this->assertSame(" (c1='v1' AND c2 is null)",$stub->construirWhere(array('c1'=>'v1','c2'=>null),''), $db);
        }
    }
testConstruirWhereConLike ( )

Definición en la línea 105 del archivo IgepConexionTest.php.

                                                {
        $dbs = IgepDB::supportedDBMS();
        foreach ($dbs as $db) {
                $dsn_virtual = array('phptype'=>$db);
                        $stub = $this->getMock('IgepConexion', array('conectar'), array($dsn_virtual), $db.'_MockIgepConexionCWCL',false);
                        $stub->v_dsn = $dsn_virtual;
                        
                        $this->assertSame("",$stub->construirWhereConLike(array(),'',3), $db);
                        $this->assertSame("(a=b)",$stub->construirWhereConLike(array(),'(a=b)',3), $db);
                        // con where inicial vacia
                        $this->assertSame(" (campo1='val1')",$stub->construirWhereConLike(array('campo1'=>'val1'),'',0), $db);
                        $this->assertSame(" (".IgepDB::toTextForVS($dsn_virtual,"campo1")." LIKE '%val1%')",$stub->construirWhereConLike(array('campo1'=>'val1'),'',1), $db);
                        $this->assertSame(" (campo1='val1')",$stub->construirWhereConLike(array('campo1'=>'val1'),'',2), $db);
                        $this->assertSame(" (campo1=3)",$stub->construirWhereConLike(array('campo1'=>3),'',2), $db);
                        $this->assertSame(" (".IgepDB::toTextForVS($dsn_virtual,"campo1")." LIKE 'val1%')",$stub->construirWhereConLike(array('campo1'=>'val1%'),'',2), $db);
                        $this->assertSame(" (".IgepDB::toTextForVS($dsn_virtual,"campo1")." LIKE 'val_1')",$stub->construirWhereConLike(array('campo1'=>'val_1'),'',2), $db);
                        $this->assertSame(" (campo1=34)",$stub->construirWhereConLike(array('campo1'=>34),'',2), $db);
                        $this->assertSame(" (lower(".IgepDB::toTextForVS($dsn_virtual,"campo1").") LIKE ".IgepDB::unDiacritic($dsn_virtual,"lower('%val1%')").')',$stub->construirWhereConLike(array('campo1'=>'val1'),'',3), $db);
                        // con where inicial (solo 1 caso, el resto igual)
                        $this->assertSame("where a=b OR (".IgepDB::toTextForVS($dsn_virtual,"campo1")." LIKE '%val1%')",$stub->construirWhereConLike(array('campo1'=>'val1'),'where a=b',1), $db);
                        // con 2 campos en array (solo 1 caso, el resto igual)
                        $this->assertSame(" (".IgepDB::toTextForVS($dsn_virtual,"c1")." LIKE '%v1%' AND ".IgepDB::toTextForVS($dsn_virtual,"c2")." LIKE '%v2%')",$stub->construirWhereConLike(array('c1'=>'v1','c2'=>'v2'),'',1), $db);
                        // con 2 campos en array pero uno vacio (solo 1 caso, el resto igual)
                        $this->assertSame(" (".IgepDB::toTextForVS($dsn_virtual,"c1")." LIKE '%v1%')",$stub->construirWhereConLike(array('c1'=>'v1','c2'=>''),'',1), $db);
        }
    }
testConsultar ( )
Tareas pendientes:
Implement testConsultar().

Definición en la línea 155 del archivo IgepConexionTest.php.

                                    {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testEmpezarTransaccion ( )
Tareas pendientes:
Implement testEmpezarTransaccion().

Definición en la línea 65 del archivo IgepConexionTest.php.

                                             {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testGetConexion ( )
Tareas pendientes:
Implement testGetConexion().

Definición en la línea 45 del archivo IgepConexionTest.php.

                                      {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testGetDsn ( )
Tareas pendientes:
Implement testGetDsn().

Definición en la línea 55 del archivo IgepConexionTest.php.

                                 {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testOperar ( )
Tareas pendientes:
Implement testOperar().

Definición en la línea 165 del archivo IgepConexionTest.php.

                                 {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
testPrepararFecha ( )

de negocio a bd

Definición en la línea 534 del archivo IgepConexionTest.php.

                                        {
                $dbs = IgepDB::supportedDBMS();
        $n = ConfigFramework::getDateMaskFW();
                $fhora = ' H:i:s';
                foreach ($dbs as $db) {
                        $dsn_virtual = array('phptype'=>$db);
                $stub = $this->getMock('IgepConexion', array('conectar'), array($dsn_virtual), $db.'_testPrepararFecha_MockIgepConexion',false);
                        $stub->v_dsn = $dsn_virtual;
                $d = IgepDB::mascaraFechas($dsn_virtual);

                        // los mismos que en IgepConexion::prepararOperacion para fechas
                        $fnegocio = new gvHidraTimestamp('1995-12-24');
                        $fbd = $stub->prepararFecha($fnegocio);
                        $this->assertSame($fbd, $fnegocio->format($d.$fhora), $db.': fecha num sin hora');
                        $fbd = $stub->prepararFecha($fnegocio->format($n));
                        $this->assertSame($fbd, $fnegocio->format($d), $db.': fecha txt sin hora');

                        $fnegocio = new gvHidraTimestamp('1995-12-24 18:34:56');
                        $fbd = $stub->prepararFecha($fnegocio);
                        $this->assertSame($fbd, $fnegocio->format($d.$fhora), $db.': fecha num con hora');
                        $fbd = $stub->prepararFecha($fnegocio->format($n.$fhora));
                        $this->assertSame($fbd, $fnegocio->format($d.$fhora), $db.': fecha txt con hora');

                        $stub = null;
            }
    }
testPrepararNumero ( )

de presentacion a bd de negocio a bd

Definición en la línea 511 del archivo IgepConexionTest.php.

                                         {
                $dbs = IgepDB::supportedDBMS();
        $n = ConfigFramework::getNumericSeparatorsFW();
        $nd = $n['DECIMAL'];
        $ng = $n['GROUP'];
                foreach ($dbs as $db) {
                        $dsn_virtual = array('phptype'=>$db);
                $stub = $this->getMock('IgepConexion', array('conectar'), array($dsn_virtual), $db.'_testPrepararNumero_MockIgepConexion',false);
                        $stub->v_dsn = $dsn_virtual;
                $d = IgepDB::caracteresNumericos($dsn_virtual);
                $dd = $d['DECIMAL'];
                $dg = $d['GROUP'];

                        // los tests completos en IgepConexion::prepararOperacion
                        $this->assertEquals("1{$dg}234{$dg}567{$dd}8",$stub->prepararNumero("1{$ng}234{$ng}567{$nd}8"),$db.': prepararNumero- conversion de numero con grupos y decimales (1) a bd');

                        $stub = null;
            }
    }
testPrepararOperacion ( )

de negocio a bd

Definición en la línea 176 del archivo IgepConexionTest.php.

                                            {
        $dbs = IgepDB::supportedDBMS();
        $n = ConfigFramework::getNumericSeparatorsFW();
                $nd = $n['DECIMAL'];
                $ng = $n['GROUP'];
                $nf = ConfigFramework::getDateMaskFW();
                $fhora = ' H:i:s';
        foreach ($dbs as $db) {
                $dsn_virtual = array('phptype'=>$db);
                        $stub = $this->getMock('IgepConexion', array('conectar'), array($dsn_virtual), $db.'_MockIgepConexion',false);
                        $stub->v_dsn = $dsn_virtual;
                        $backslash = IgepDB::backSlashScape($dsn_virtual);

                $d = IgepDB::caracteresNumericos($dsn_virtual);
                $dd = $d['DECIMAL'];
                $dg = $d['GROUP'];
                $df = IgepDB::mascaraFechas($dsn_virtual);

                        // sin tipo -> cadenas
                        $v="abc";
                        $stub->prepararOperacion($v);
                        $this->assertEquals("abc",$v, $db.': prepararOperacion- conversion de cadena');

                        $v="a'bc";
                        $stub->prepararOperacion($v);
                        $this->assertEquals("a''bc",$v, $db.': prepararOperacion- conversion de cadena con comilla simple');
                        
                        $v='a"bc';
                        $stub->prepararOperacion($v);
                        $this->assertEquals('a"bc',$v, $db.': prepararOperacion- conversion de cadena con comilla doble - escapando');

                        $v="a\\bc";
                        $stub->prepararOperacion($v);
                        $this->assertEquals("a{$backslash}bc",$v, $db.': prepararOperacion- conversion de cadena con barra invertida y sin tipo');

                        // con tipo null -> cadenas
                        $v="abc";
                        $stub->prepararOperacion($v,null);
                        $this->assertEquals("abc",$v, $db.': prepararOperacion- conversion de cadena');

                        $v="a'bc";
                        $stub->prepararOperacion($v,null);
                        $this->assertEquals("a''bc",$v, $db.': prepararOperacion- conversion de cadena con comilla simple');
                        
                        $v='a"bc';
                        $stub->prepararOperacion($v,null);
                        $this->assertEquals('a"bc',$v, $db.': prepararOperacion- conversion de cadena con comilla doble - escapando');

                        $v="a\\bc";
                        $stub->prepararOperacion($v,null);
                        $this->assertEquals("a{$backslash}bc",$v, $db.': prepararOperacion- conversion de cadena con barra invertida y con tipo null');

                        // cadenas
                        $v="abc";
                        $stub->prepararOperacion($v,TIPO_CARACTER);
                        $this->assertEquals("abc",$v, $db.': prepararOperacion- conversion de cadena');

                        $v="a'bc";
                        $stub->prepararOperacion($v,TIPO_CARACTER);
                        $this->assertEquals("a''bc",$v, $db.': prepararOperacion- conversion de cadena con comilla simple');
                        
                        $v='a"bc';
                        $stub->prepararOperacion($v,TIPO_CARACTER);
                        $this->assertEquals('a"bc',$v, $db.': prepararOperacion- conversion de cadena con comilla doble - escapando');

                        $v="a\\bc";
                        $stub->prepararOperacion($v,TIPO_CARACTER);
                        $this->assertEquals("a{$backslash}bc",$v, $db.': prepararOperacion- conversion de cadena con barra invertida con tipo caracter');

                        // numeros
                        $v="1{$ng}234{$ng}567{$nd}8";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertEquals("1{$dg}234{$dg}567{$dd}8",$v, $db.': prepararOperacion- conversion de numero con grupos y decimales (1) a bd');
                        $v="1{$ng}234{$ng}567{$nd}89";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertEquals("1{$dg}234{$dg}567{$dd}89",$v, $db.': prepararOperacion- conversion de numero con grupos y decimales (2) a bd');
                        $v="0";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertEquals("0", $v, $db.': prepararOperacion- conversion de numero 0 en cadena');
                        $v=0;
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertEquals("0", $v, $db.': prepararOperacion- conversion de numero 0 en numero');
                        $v="1e5";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertSame("100{$dg}000", $v, $db.': prepararOperacion- conversion de numero con exponente a bd');
                        $v="1e-5";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertSame("0{$dd}00001", $v, $db.': prepararOperacion- conversion de numero con exponente negativo a bd');
                        $v="1e5";
                        $stub->prepararOperacion($v,TIPO_ENTERO);
                        $this->assertSame("100{$dg}000", $v, $db.': prepararOperacion- conversion de numero entero con exponente a bd');

                        $v="-1{$ng}234{$ng}567{$nd}8";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertEquals("-1{$dg}234{$dg}567{$dd}8", $v, $db.': prepararOperacion- conversion de numero con signo - a bd');
                        $v="+1{$ng}234{$ng}567{$nd}8";
                        $stub->prepararOperacion($v,TIPO_DECIMAL);
                        $this->assertEquals("1{$dg}234{$dg}567{$dd}8", $v, $db.': prepararOperacion- conversion de numero con signo + a bd');

                        $v="";
                        $stub->prepararOperacion($v,TIPO_ENTERO);
                        $this->assertEquals("", $v, $db.': prepararOperacion- conversion de numero con cadena vacia');
                        $v=null;
                        $stub->prepararOperacion($v,TIPO_ENTERO);
                        $this->assertTrue(is_null($v), $db.': prepararOperacion- conversion de numero con null');

                        // fechas
                        $fnegocio = new gvHidraTimestamp('1995-12-24');
                        $fespe = $fnegocio->format($df);
                        $fbd = $fnegocio;
                        $stub->prepararOperacion($fbd,TIPO_FECHA);
                        $this->assertEquals($fbd, $fespe, $db.': fecha obj sin hora');
                        $fbd = $fnegocio->formatFW();
                        $stub->prepararOperacion($fbd,TIPO_FECHA);
                        $this->assertEquals($fbd, $fespe, $db.': fecha txt sin hora '.$fbd);
                        
                        $fnegocio = new gvHidraTimestamp('1995-12-24 18:34:56');
                        $fbd = $fnegocio;
                        $stub->prepararOperacion($fbd,TIPO_FECHAHORA);
                        $this->assertEquals($fbd, $fnegocio->format($df.$fhora), $db.': fecha obj con hora');
                        $fbd = $fnegocio->formatFW();
                        $stub->prepararOperacion($fbd,TIPO_FECHAHORA);
                        $this->assertEquals($fbd, $fnegocio->format($df.$fhora), $db.': fecha txt con hora');

                        $fnegocio = null;
                        $fbd = $fnegocio; 
                        $stub->prepararOperacion($fbd,TIPO_FECHAHORA);
                        $this->assertSame($fbd, $fnegocio, $db.': fecha nula');

                        // repito las operaciones anteriores pero ahora dentro de un array
                        $datos = array(
                                array('edad'=>"1e5", 'importe'=>"1{$ng}234{$ng}567{$nd}8", 'nom'=>"abc", 'saldo'=>"-12", 'ffirma'=>new gvHidraTimestamp('1995-12-24'), 'nombre'=>"abc", ),
                                array('edad'=>"-1{$ng}234{$ng}567", 'importe'=>"1{$ng}234{$ng}567{$nd}89", 'nom'=>"", 'saldo'=>"+12", 'ffirma'=>"se asigna abajo!!!", 'nombre'=>"a'bc", ),
                                array('edad'=>"+1{$ng}234{$ng}567", 'importe'=>"0", 'nom'=>"", 'saldo'=>"", 'factu'=>new gvHidraTimestamp('1995-12-24 18:34:56'), 'nombre'=>'a"bc', ),
                                array('edad'=>"", 'importe'=>0, 'nom'=>"", 'saldo'=>"", 'factu'=>"se asigna abajo!!!", 'nombre'=>"a\\bc", ),
                                array('edad'=>null, 'importe'=>"1e5", 'nom'=>"", 'saldo'=>"", 'factu'=>null, 'nombre'=>"a'bc", ),
                                array('edad'=>"", 'importe'=>"1e-5", 'nom'=>"", 'saldo'=>"", 'nombre'=>'a"bc', ),
                                array('nombre'=>"a\\bc", 'otroTexto'=>"a'bc",),
                                );
                        $datos[1]['ffirma'] = $datos[0]['ffirma']->format($nf);
                        $datos[3]['factu'] = $datos[2]['factu']->format($nf.$fhora);
                        $tipos = array('edad'=>array('tipo'=>TIPO_ENTERO),
                                                        'importe'=>array('tipo'=>TIPO_DECIMAL, 'parteDecimal'=>2),
                                                        'saldo'=>array('tipo'=>TIPO_ENTERO),
                                                        'ffirma'=>array('tipo'=>TIPO_FECHA),
                                                        'factu'=>array('tipo'=>TIPO_FECHAHORA),
                                                        'nombre'=>array('tipo'=>TIPO_CARACTER),
                                        );
                        $valor = $datos;
                $stub->prepararOperacion($valor,$tipos);

                        // cadenas
                        $this->assertEquals($valor[0]['nombre'],"abc", $db.': prepararOperacion- conversion de cadena (array)');
                        $this->assertEquals($valor[1]['nombre'],"a''bc", $db.': prepararOperacion- conversion de cadena con comilla simple (array)');
                        $this->assertEquals($valor[2]['nombre'],'a"bc', $db.': prepararOperacion- conversion de cadena con comilla doble - escapando (array)');
                        $this->assertEquals($valor[3]['nombre'],"a{$backslash}bc", $db.': prepararOperacion- conversion de cadena con barra invertida (array)');
                        $this->assertEquals($valor[6]['otroTexto'],"a''bc", $db.': prepararOperacion- conversion de cadena sin definir con comilla simple (array)');

                        // numeros
                        $this->assertEquals($valor[0]['importe'],"1{$dg}234{$dg}567{$dd}8", $db.': prepararOperacion- conversion de numero con grupos y decimales (1) a bd (array)');
                        $this->assertEquals($valor[1]['importe'],"1{$dg}234{$dg}567{$dd}89", $db.': prepararOperacion- conversion de numero con grupos y decimales (2) a bd (array)');
                        $this->assertEquals($valor[2]['importe'],"0", $db.': prepararOperacion- conversion de numero 0 en cadena (array)');
                        $this->assertEquals($valor[3]['importe'],"0", $db.': prepararOperacion- conversion de numero 0 en numero (array)');
                        $this->assertSame($valor[4]['importe'],"100{$dg}000", $db.': prepararOperacion- conversion de numero con exponente a bd (array)');
                        $this->assertSame($valor[5]['importe'],"0{$dd}00001", $db.': prepararOperacion- conversion de numero con exponente negativo a bd (array)');
                        $this->assertSame($valor[0]['edad'],"100{$dg}000", $db.': prepararOperacion- conversion de numero entero con exponente a bd (array)');
                        $this->assertEquals($valor[1]['edad'],"-1{$dg}234{$dg}567", $db.': prepararOperacion- conversion de numero con signo - a bd (array)');
                        $this->assertEquals($valor[2]['edad'],"1{$dg}234{$dg}567", $db.': prepararOperacion- conversion de numero con signo + a bd (array)');
                        $this->assertEquals($valor[3]['edad'],"", $db.': prepararOperacion- conversion de numero con cadena vacia (array)');
                        $this->assertTrue(is_null($valor[4]['edad']), $db.': prepararOperacion- conversion de numero con null (array)');

                        // fechas
                        $this->assertEquals($valor[0]['ffirma'], $datos[0]['ffirma']->format($df), $db.': fecha obj sin hora (array)');
                        $this->assertEquals($valor[1]['ffirma'], $datos[0]['ffirma']->format($df), $db.': fecha txt sin hora (array)');
                        $this->assertEquals($valor[2]['factu'], $datos[2]['factu']->format($df.$fhora), $db.': fecha obj con hora (array)');
                        $this->assertEquals($valor[3]['factu'], $datos[2]['factu']->format($df.$fhora), $db.': fecha txt con hora (array)');
                        $this->assertSame($valor[4]['factu'], $datos[4]['factu'], $db.': fecha null (array)');
        }
    }
testTransform_BD2FW ( )

de bd a negocio

Definición en la línea 564 del archivo IgepConexionTest.php.

                                          {
        $dbs = IgepDB::supportedDBMS();
        $n = ConfigFramework::getNumericSeparatorsFW();
                $nd = $n['DECIMAL'];
                $ng = $n['GROUP'];
        $fn = ConfigFramework::getDateMaskFW();
//      // en formatos destino, siempre cambiamos n por m, y j por d
//              $fn = str_replace('j', 'd', $fn);
//              $fn = str_replace('n', 'm', $fn);
        foreach ($dbs as $db) {
                $dsn_virtual = array('phptype'=>$db);
                $b = IgepDB::caracteresNumericos($dsn_virtual);
                $bd = $b['DECIMAL'];
                $bg = $b['GROUP'];
                $stub = $this->getMock('IgepConexion', array('conectar'), array($dsn_virtual), $db.'_testTransform_BD2FW_MockIgepConexion',false);
                        $stub->v_dsn = $dsn_virtual;
                $f = IgepDB::mascaraFechas($dsn_virtual);

                        $v = "12{$bg}345{$bd}56";
                $stub->transform_BD2FW($v,TIPO_DECIMAL);
                        $this->assertEquals($v, "12{$ng}345{$nd}56", $db.": convirtiendo numero");

                        $v = "12{$bg}345{$bd}561000";
                        $stub->transform_BD2FW($v,TIPO_DECIMAL);
                        $this->assertSame($v, "12{$ng}345{$nd}561000", $db.": convirtiendo numero con 3 decimales y ceros al final");
                        $this->assertEquals($v, "12{$ng}345{$nd}561", $db.": convirtiendo numero con 3 decimales sin ceros al final");

                        $v = "12{$bg}345";
                $stub->transform_BD2FW($v,TIPO_DECIMAL);
                        $this->assertEquals($v, "12{$ng}345", $db.": convirtiendo numero sin decimales");

                        $v = "12{$bg}345";
                $stub->transform_BD2FW($v,TIPO_ENTERO,$dsn_virtual);
                        $this->assertEquals($v, "12{$ng}345", $db.": convirtiendo numero entero");

                        $v = "12";
                $stub->transform_BD2FW($v,TIPO_ENTERO);
                        $this->assertEquals($v, "12", $db.": convirtiendo numero entero sin grupos");

                        $v = "-12";
                $stub->transform_BD2FW($v,TIPO_ENTERO);
                        $this->assertEquals($v, "-12", $db.": convirtiendo numero entero con signo -");

                        $v = "+12";
                $stub->transform_BD2FW($v,TIPO_ENTERO);
                        $this->assertEquals($v, "12", $db.": convirtiendo numero entero con signo +");

                        $v = "12";
                $stub->transform_BD2FW($v,TIPO_CARACTER);
                        $this->assertEquals($v, "12", $db.": convirtiendo texto sin caracteres especiales");

                        $v = "1'2";
                $stub->transform_BD2FW($v,TIPO_CARACTER);
                        $this->assertEquals($v, "1'2", $db.": convirtiendo texto con comilla simple");

                        $v = '1"2';
                $stub->transform_BD2FW($v,TIPO_CARACTER);
                        $this->assertEquals($v, '1"2', $db.": convirtiendo texto con comilla doble");

                        $v = '1\2';
                $stub->transform_BD2FW($v,TIPO_CARACTER);
                        $this->assertEquals($v, '1\2', $db.": convirtiendo texto con barra invertida");

                        // repito las operaciones anteriores pero ahora dentro de un array
                        // en los decimales no afecta la longitud de decimales
                        $datos = array(
                                array('edad'=>"12{$bg}345", 'importe'=>"12{$bg}345{$bd}56", 'nom'=>"12", 'saldo'=>"-12",'cumple'=>'cambia en bucle'),
                                array('edad'=>"12", 'importe'=>"12{$bg}345{$bd}561000", 'nom'=>"1'2", 'saldo'=>"+12",),
                                array('edad'=>"", 'importe'=>"12{$bg}345", 'nom'=>'1"2',),
                                array('edad'=>"", 'importe'=>"", 'nom'=>'1\2',),
                                );
                        $tipos = array('edad'=>array('tipo'=>TIPO_ENTERO), 'importe'=>array('tipo'=>TIPO_DECIMAL), 'saldo'=>array('tipo'=>TIPO_ENTERO),);
                        $valor = $datos;
                $stub->transform_BD2FW($valor,$tipos);
                        $this->assertEquals($valor[0]['importe'], "12{$ng}345{$nd}56", $db.": convirtiendo numero (array)");
                        $this->assertEquals($valor[1]['importe'], "12{$ng}345{$nd}561000", $db.": convirtiendo numero con 3 decimales y ceros al final (array)");
                        $this->assertEquals($valor[1]['importe'], "12{$ng}345{$nd}561", $db.": convirtiendo numero con 3 decimales sin ceros al final (array)");
                        $this->assertEquals($valor[2]['importe'], "12{$ng}345", $db.": convirtiendo numero sin decimales (array)");
                        $this->assertEquals($valor[0]['edad'], "12{$ng}345", $db.": convirtiendo numero entero (array)");
                        $this->assertEquals($valor[1]['edad'], "12", $db.": convirtiendo numero entero sin grupos (array)");
                        $this->assertEquals($valor[0]['saldo'], "-12", $db.": convirtiendo numero entero con signo - (array)");
                        $this->assertEquals($valor[1]['saldo'], "12", $db.": convirtiendo numero entero con signo + (array)");
                        $this->assertEquals($valor[0]['nom'], "12", $db.": convirtiendo texto (sin tipo) sin caracteres especiales (array)");
                        $this->assertEquals($valor[1]['nom'], "1'2", $db.": convirtiendo texto (sin tipo) con comilla simple (array)");
                        $this->assertEquals($valor[2]['nom'], '1"2', $db.": convirtiendo texto (sin tipo) con comilla doble (array)");
                        $this->assertEquals($valor[3]['nom'], '1\2', $db.": convirtiendo texto (sin tipo) con barra invertida (array)");
                        $tipos = array('nom'=>array('tipo'=>TIPO_CARACTER,),);
                        $valor = $datos;
                $stub->transform_BD2FW($valor,$tipos);
                        $this->assertEquals($valor[0]['nom'], "12", $db.": convirtiendo texto (con tipo) sin caracteres especiales (array)");
                        $this->assertEquals($valor[1]['nom'], "1'2", $db.": convirtiendo texto (con tipo) con comilla simple (array)");
                        $this->assertEquals($valor[2]['nom'], '1"2', $db.": convirtiendo texto (con tipo) con comilla doble (array)");
                        $this->assertEquals($valor[3]['nom'], '1\2', $db.": convirtiendo texto (con tipo) con barra invertida (array)");

                        // fechas individuales y array
                        $v = '';
                        $valor = $v;
                $stub->transform_BD2FW($valor,TIPO_FECHAHORA);
                        $this->assertSame($valor, null, $db.": convirtiendo fecha-hora vacia");

                        $v = null;
                        $valor = $v;
                $stub->transform_BD2FW($valor,TIPO_FECHAHORA);
                        $this->assertSame($valor,null, $db.": convirtiendo fecha-hora nula");

                        $fechas = array(
                                array(0, 0, 0, 4, 15, 1990,": convirtiendo fecha correcta",),
                                array(0, 0, 0, 4, 15, 1960,": convirtiendo fecha anterior epoca unix",),
                                array(0, 0, 0, 4, 15, 1919,": convirtiendo fecha de principios del siglo 20",),
                                array(0, 0, 0, 4, 15, 1137,": convirtiendo fecha de la epoca de Jaume I",),
                                array(0, 0, 0, 4, 15, 345,": convirtiendo fecha de anyo de 3",),
                                array(0, 0, 0, 4, 15, 2040,": convirtiendo fecha posterior a epoca unix",),
                                array(0, 0, 0, 4, 15, 9999,": convirtiendo fecha con ao maximo",),
                                // tratamiento especial de los aos de 2: ventana
                                array(0, 0, 0, 4, 15, 85,": convirtiendo fecha de anyo de 2 de epoca unix",),
                                array(0, 0, 0, 4, 15, 34,": convirtiendo fecha de anyo de 2 fuera de epoca",),
                                // tratamiento especial de los aos de 1: coge la decada actual
                                array(0, 0, 0, 4, 15, 3,": convirtiendo fecha de anyo de 1",),
                                array(10, 20, 30, 4, 15, 2003,": convirtiendo fecha con hora",),
                                array(1, 1, 1, 4, 15, 2003,": convirtiendo fecha con hora inicio dia",),
                                array(23, 59, 58, 4, 15, 2003,": convirtiendo fecha con hora fin dia",),
                                array(47, 0, 0, 4, 15, 2003,": convirtiendo fecha con hora y ms de 24 horas",),
                                array(0, 300, 0, 4, 15, 2003,": convirtiendo fecha con hora y ms de 60 minutos",),
                                array(0, 0, 3600, 4, 15, 2003,": convirtiendo fecha con hora y ms de 60 segundos",),
                                array(12, 34, 56, 14, 1, 2003,": convirtiendo fecha con hora y ms de 12 meses",),
                                array(12, 34, 56, 5, 40, 2003,": convirtiendo fecha con hora y ms de 30 dias (hasta el 40 de mayo...)",),
                                );

                        foreach ($fechas as $fecha) {
                                $anyo = $fecha[5];
                        if ($anyo > 9 and $anyo < 100)
                                $anyo += ($fecha[5]<=69)? 2000: 1900;
                        elseif ($anyo <= 9)
                                $anyo = (int) substr(date('Y'),0,3).((string)$anyo);
                                $dt = new DateTime();
                                $dt->setDate($anyo,$fecha[3],$fecha[4]);
                                $dt->setTime($fecha[0],$fecha[1],$fecha[2]);
                                $fhora = (($fecha[0] or $fecha[1] or $fecha[2])? ' H:i:s':'');

                                // valor simple como fechahora
                                $valor = $dt->format($f.$fhora);
                        $stub->transform_BD2FW($valor,TIPO_FECHAHORA);
                                $this->assertEquals($valor->formatFW(), $dt->format($fn.$fhora), $db.$fecha[6].' (valor simple como fechahora)');

                                // valor simple como fecha
                                // no valida si hay hora
                                $valor = $dt->format($f.$fhora);
                        $stub->transform_BD2FW($valor,TIPO_FECHA);
                                $this->assertEquals($valor->formatFW(), $dt->format($fn), $db.$fecha[6].' (valor simple como fecha)');

                                // valor como array fechahora
                                $valor = $datos;
                                $valor[0]['cumple']= $dt->format($f.$fhora);
                        $stub->transform_BD2FW($valor, array('cumple'=>array('tipo'=>TIPO_FECHAHORA)));
                                $this->assertEquals($valor[0]['cumple']->formatFW(), $dt->format($fn.$fhora), $db.$fecha[6].' (array con fechahora)');

                                // valor como array fecha
                                // no valida si hay hora
                                $valor = $datos;
                                $valor[0]['cumple']= $dt->format($f.$fhora);
                        $stub->transform_BD2FW($valor, array('cumple'=>array('tipo'=>TIPO_FECHA)));
                                $this->assertEquals($valor[0]['cumple']->formatFW(), $dt->format($fn), $db.$fecha[6].' (array con fecha)');
                        }
        }
    }
testTransform_BD2User ( )

de bd a interfaz

Definición en la línea 733 del archivo IgepConexionTest.php.

                                            {
        $dbs = IgepDB::supportedDBMS();
        $p = ConfigFramework::getNumericSeparatorsUser();
        $f = ConfigFramework::getDateMaskUser();
                $pd = $p['DECIMAL'];
                $pg = $p['GROUP'];
        foreach ($dbs as $db) {
                $dsn_virtual = array('phptype'=>$db);
                $fb = IgepDB::mascaraFechas($dsn_virtual);
                $b = IgepDB::caracteresNumericos($dsn_virtual);
                $bd = $b['DECIMAL'];
                $bg = $b['GROUP'];
                $v = "12{$bg}345{$bd}56";
                $valor = IgepConexion::transform_BD2User($v,TIPO_DECIMAL,$dsn_virtual);
                        $this->assertEquals($valor,     "12{$pg}345{$pd}56", $db.": convirtiendo numero");

                        $v = "12{$bg}345{$bd}561";
                        $valor = IgepConexion::transform_BD2User($v,TIPO_DECIMAL,$dsn_virtual,4);
                        $this->assertEquals($valor,     "12{$pg}345{$pd}5610", $db.": convirtiendo numero con 3 decimales");

                        $v = "12{$bg}345";
                $valor = IgepConexion::transform_BD2User($v,TIPO_DECIMAL,$dsn_virtual);
                        $this->assertEquals($valor, "12{$pg}345{$pd}00", $db.": convirtiendo numero sin decimales");

                        $v = "12{$bd}345e7";
                $valor = IgepConexion::transform_BD2User($v,TIPO_DECIMAL,$dsn_virtual);
                        $this->assertEquals($valor, "123{$pg}450{$pg}000{$pd}00", $db.": convirtiendo numero con decimales y exponente");

                        $v = "12{$bg}345";
                $valor = IgepConexion::transform_BD2User($v,TIPO_ENTERO,$dsn_virtual);
                        $this->assertEquals($valor, "12{$pg}345", $db.": convirtiendo entero");

                        $v = "12";
                $valor = IgepConexion::transform_BD2User($v,TIPO_ENTERO,$dsn_virtual);
                        $this->assertEquals($valor, "12", $db.": convirtiendo entero sin grupos");

                        $v = "12E-5";
                $valor = IgepConexion::transform_BD2User($v,TIPO_ENTERO,$dsn_virtual);
                        $this->assertEquals($valor, "0{$pd}00012", $db.": convirtiendo entero con exponente");

                        $v = "-12";
                $valor = IgepConexion::transform_BD2User($v,TIPO_ENTERO,$dsn_virtual);
                        $this->assertEquals($valor, "-12", $db.": convirtiendo entero con signo -");

                        $v = "+12";
                $valor = IgepConexion::transform_BD2User($v,TIPO_ENTERO,$dsn_virtual);
                        $this->assertEquals($valor, "12", $db.": convirtiendo entero con signo +");

                        $v = "abc";
                $valor = IgepConexion::transform_BD2User($v,TIPO_CARACTER,$dsn_virtual);
                        $this->assertEquals($valor, "abc", $db.": convirtiendo texto sin caracteres especiales");

                        $v = "ab'c";
                $valor = IgepConexion::transform_BD2User($v,TIPO_CARACTER,$dsn_virtual);
                        $this->assertEquals($valor, "ab'c", $db.": convirtiendo texto con comilla simple");

                        $v = 'ab"c';
                $valor = IgepConexion::transform_BD2User($v,TIPO_CARACTER,$dsn_virtual);
                        $this->assertEquals($valor, 'ab"c', $db.": convirtiendo texto con comilla doble");

                        $v = 'ab\c';
                $valor = IgepConexion::transform_BD2User($v,TIPO_CARACTER,$dsn_virtual);
                        $this->assertEquals($valor, 'ab\c', $db.": convirtiendo texto con barra invertida");

                        // repito las operaciones anteriores pero ahora dentro de un array
                        $datos = array(
                                array('edad'=>"12{$bg}345", 'importe'=>"12{$bg}345{$bd}56", 'nom'=>"abc", 'saldo'=>"-12", 'cumple'=>'se modifica en test!!!',),
                                array('edad'=>"12", 'importe'=>"12{$bg}345", 'nom'=>"ab'c", 'saldo'=>"+12",),
                                );
                        $tipos = array('edad'=>array('tipo'=>TIPO_ENTERO), 'importe'=>array('tipo'=>TIPO_DECIMAL, 'parteDecimal'=>2),
                                                        'saldo'=>array('tipo'=>TIPO_ENTERO),);
                        $datos_clone = $datos;
                $valor = IgepConexion::transform_BD2User($datos_clone,$tipos,$dsn_virtual);
                        $this->assertEquals($valor[0]['importe'],       "12{$pg}345{$pd}56", $db.": convirtiendo numero (array)");
                        $this->assertEquals($valor[1]['importe'], "12{$pg}345{$pd}00", $db.": convirtiendo numero sin decimales (array)");
                        $this->assertEquals($valor[0]['edad'], "12{$pg}345", $db.": convirtiendo entero (array)");
                        $this->assertEquals($valor[1]['edad'], "12", $db.": convirtiendo entero sin grupos (array)");
                        $this->assertEquals($valor[0]['saldo'], "-12", $db.": convirtiendo entero con signo - (array)");
                        $this->assertEquals($valor[1]['saldo'], "12", $db.": convirtiendo entero con signo + (array)");

                        // ahora el ejemplo con 4 decimales
                        $datos[] = array('edad'=>"12E-5", 'importe'=>"12{$bg}345{$bd}561", 'nom'=>'ab"c',);
                        $datos[] = array('edad'=>"", 'importe'=>"12{$bd}345e7", 'nom'=>'ab\c',);
                        $tipos = array('importe'=>array('tipo'=>TIPO_DECIMAL, 'parteDecimal'=>4), 'edad'=>array('tipo'=>TIPO_ENTERO),);
                        $datos_clone = $datos;
                $valor = IgepConexion::transform_BD2User($datos_clone,$tipos,$dsn_virtual);
                        $this->assertEquals($valor[2]['importe'],       "12{$pg}345{$pd}5610", $db.": convirtiendo numero con 3 decimales (array)");
                        $this->assertEquals($valor[3]['importe'], "123{$pg}450{$pg}000{$pd}0000", $db.": convirtiendo numero con decimales y exponente (array)");
                        $this->assertEquals($valor[2]['edad'], "0{$pd}00012", $db.": convirtiendo entero con exponente (array)");
                        // transforma texto
                        $this->assertEquals($valor[0]['nom'], "abc", $db.": convirtiendo texto (sin tipo) sin caracteres especiales (array)");
                        $this->assertEquals($valor[1]['nom'], "ab'c", $db.": convirtiendo texto (sin tipo) con comilla simple (array)");
                        $this->assertEquals($valor[2]['nom'], 'ab"c', $db.": convirtiendo texto (sin tipo) con comilla doble (array)");
                        $this->assertEquals($valor[3]['nom'], 'ab\c', $db.": convirtiendo texto (sin tipo) con barra invertida (array)");
                        $tipos = array('nom'=>array('tipo'=>TIPO_CARACTER,));
                        $datos_clone = $datos;
                $valor = IgepConexion::transform_BD2User($datos_clone,$tipos,$dsn_virtual);
                        $this->assertEquals($valor[0]['nom'], "abc", $db.": convirtiendo texto (con tipo) sin caracteres especiales (array)");
                        $this->assertEquals($valor[1]['nom'], "ab'c", $db.": convirtiendo texto (con tipo) con comilla simple (array)");
                        $this->assertEquals($valor[2]['nom'], 'ab"c', $db.": convirtiendo texto (con tipo) con comilla doble (array)");
                        $this->assertEquals($valor[3]['nom'], 'ab\c', $db.": convirtiendo texto (con tipo) con barra invertida (array)");

                        // fechas, individuales y array
                        // tests similares a IgepConexion->testTransform_BD2FW
                        $fechas = array(
                                array(0, 0, 0, 4, 15, 1990,": convirtiendo fecha correcta",),
                                array(0, 0, 0, 4, 15, 1960,": convirtiendo fecha anterior epoca unix",),
                                array(0, 0, 0, 4, 15, 1919,": convirtiendo fecha de principios del siglo 20",),
                                array(0, 0, 0, 4, 15, 1137,": convirtiendo fecha de la epoca de Jaume I",),
                                array(0, 0, 0, 4, 15, 345,": convirtiendo fecha de anyo de 3",),
                                array(0, 0, 0, 4, 15, 2040,": convirtiendo fecha posterior a epoca unix",),
                                array(0, 0, 0, 4, 15, 9999,": convirtiendo fecha con ao maximo",),
                                // tratamiento especial de los aos de 2: ventana
                                array(0, 0, 0, 4, 15, 85,": convirtiendo fecha de anyo de 2 de epoca unix",),
                                array(0, 0, 0, 4, 15, 34,": convirtiendo fecha de anyo de 2 fuera de epoca",),
                                // tratamiento especial de los aos de 1: coge la decada actual
                                array(0, 0, 0, 4, 15, 3,": convirtiendo fecha de anyo de 1",),
                                array(10, 20, 30, 4, 15, 2003,": convirtiendo fecha con hora",),
                                array(1, 1, 1, 4, 15, 2003,": convirtiendo fecha con hora inicio dia",),
                                array(23, 59, 58, 4, 15, 2003,": convirtiendo fecha con hora fin dia",),
                                array(47, 0, 0, 4, 15, 2003,": convirtiendo fecha con hora y ms de 24 horas",),
                                array(0, 300, 0, 4, 15, 2003,": convirtiendo fecha con hora y ms de 60 minutos",),
                                array(0, 0, 3600, 4, 15, 2003,": convirtiendo fecha con hora y ms de 60 segundos",),
                                array(12, 34, 56, 14, 1, 2003,": convirtiendo fecha con hora y ms de 12 meses",),
                                array(12, 34, 56, 5, 40, 2003,": convirtiendo fecha con hora y ms de 30 dias (hasta el 40 de mayo...)",),
                                );
                        foreach ($fechas as $fecha) {
                                $anyo = $fecha[5];
                        if ($anyo > 9 and $anyo < 100)
                                $anyo += ($fecha[5]<=69)? 2000: 1900;
                        elseif ($anyo <= 9)
                                $anyo = (int) substr(date('Y'),0,3).((string)$anyo);
                                $dt = new DateTime();
                                $dt->setDate($anyo,$fecha[3],$fecha[4]);
                                $dt->setTime($fecha[0],$fecha[1],$fecha[2]);
                                $fhora = (($fecha[0] or $fecha[1] or $fecha[2])? ' '.ConfigFramework::getTimeMask():'');

                                // valor simple como fechahora
                                $valor = $dt->format($fb.$fhora);
                        $valor = IgepConexion::transform_BD2User($valor,TIPO_FECHAHORA,$dsn_virtual);
                                $this->assertEquals($valor, $dt->format($f.$fhora), $db.$fecha[6].' (valor simple como fechahora)');

                                // valor simple como fecha
                                // no valida si hay hora
                                $valor = $dt->format($fb.$fhora);
                        $valor = IgepConexion::transform_BD2User($valor,TIPO_FECHA,$dsn_virtual);
                                $this->assertEquals($valor, $dt->format($f), $db.$fecha[6].' (valor simple como fecha)');

                                // valor como array fechahora
                                $valor = $datos;
                                $valor[0]['cumple']= $dt->format($fb.$fhora);
                        $valor = IgepConexion::transform_BD2User($valor, array('cumple'=>array('tipo'=>TIPO_FECHAHORA)), $dsn_virtual);
                                $this->assertEquals($valor[0]['cumple'], $dt->format($f.$fhora), $db.$fecha[6].' (array con fechahora)');

                                // valor como array fecha
                                // no valida si hay hora
                                $valor = $datos;
                                $valor[0]['cumple']= $dt->format($fb.$fhora);
                        $valor = IgepConexion::transform_BD2User($valor, array('cumple'=>array('tipo'=>TIPO_FECHA)), $dsn_virtual);
                                $this->assertEquals($valor[0]['cumple'], $dt->format($f), $db.$fecha[6].' (array con fecha)');
                        }
        }
        }

Documentación de los campos

$valida = false [private]

Definición en la línea 12 del archivo IgepConexionTest.php.


La documentación para esta clase fue generada a partir del siguiente fichero: