markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testGetConexion(). */ public function testGetConexion() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testGetDsn(). */ public function testGetDsn() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testEmpezarTransaccion(). */ public function testEmpezarTransaccion() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testAcabarTransaccion(). */ public function testAcabarTransaccion() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testConstruirWhere(). */ public function testConstruirWhere() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testConstruirWhereConLike(). */ public function testConstruirWhereConLike() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testCombinarWhere(). */ public function testCombinarWhere() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testConstruirLimite(). */ public function testConstruirLimite() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testConsultar(). */ public function testConsultar() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testOperar(). */ public function testOperar() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * de presentacion a bd */ public function testPrepararOperacion() { $dbs = IgepDB::supportedDBMS(); $p = ConfIgep::caracteresNumericos(); $pd = $p['DECIMAL']; $pg = $p['GROUP']; 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; $c = IgepDB::caracteresNumericos($dsn_virtual); $d = $c['DECIMAL']; $g = $c['GROUP']; $datos = "1{$pg}234{$pg}567{$pd}8"; $stub->prepararOperacion($datos,TIPO_DECIMAL); $this->assertEquals("1{$g}234{$g}567{$d}8",$datos,$db.': conversion de numero con grupos y decimales (1) a bd'); $datos = "1{$pg}234{$pg}567{$pd}89"; $stub->prepararOperacion($datos,TIPO_DECIMAL); $this->assertEquals("1{$g}234{$g}567{$d}89",$datos,$db.': conversion de numero con grupos y decimales (2) a bd'); $datos = "1{$pg}234{$pg}567{$pd}890123450"; $stub->prepararOperacion($datos,TIPO_DECIMAL); $this->assertEquals("1{$g}234{$g}567{$d}890123450",$datos,$db.': conversion de numero con grupos y decimales (muchos) a bd'); $datos = "0"; $stub->prepararOperacion($datos,TIPO_DECIMAL); $this->assertEquals("0",$datos,$db.': conversion de numero 0 en cadena'); $datos = 0; $stub->prepararOperacion($datos,TIPO_DECIMAL); $this->assertTrue(0===$datos,$db.': conversion de numero 0 en numero'); $datos = "aaa"; $stub->prepararOperacion($datos,TIPO_DECIMAL); if ($this->valida) $this->assertTrue(false===$datos,$db.': conversion de numero invalido'); else $this->assertEquals(0,$datos,$db.': conversion de numero invalido'); $errores = ConfIgep::getTransformErrors(); $this->assertEquals(1, count($errores), 'no defecta numero invalido - '.var_export($errores,true)); $datos = "1{$pg}234{$pg}567"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("1{$g}234{$g}567",$datos,$db.': conversion de entero con grupos'); $datos = "1{$pg}2{$pg}{$pg}34{$pg}567"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("1{$g}234{$g}567",$datos,$db.': conversion de entero con grupos mal puestos'); $datos = "1567"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("1{$g}567",$datos,$db.': conversion de entero introducido sin grupos'); $datos = "567"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("567",$datos,$db.': conversion de entero sin grupos'); $datos = "0"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("0",$datos,$db.': conversion de entero 0 en cadena'); $datos = 0; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("0",$datos,$db.': conversion de entero 0 en numero'); $datos = "-567"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("-567",$datos,$db.': conversion de entero con signo -'); $datos = "+567"; $stub->prepararOperacion($datos,TIPO_ENTERO); $this->assertEquals("567",$datos,$db.': conversion de entero con signo +'); $datos = "567"; $stub->prepararOperacion($datos,TIPO_CARACTER); $this->assertEquals("567",$datos,$db.': convirtiendo texto sin caracteres especiales'); $datos = "5'67"; $stub->prepararOperacion($datos,TIPO_CARACTER); $this->assertEquals("5''67",$datos,$db.': convirtiendo texto con comilla simple'); $datos = '56"7'; $stub->prepararOperacion($datos,TIPO_CARACTER); $this->assertEquals('56"7',$datos,$db.': convirtiendo texto con comilla doble'); $datos = "5\\67";// $stub->prepararOperacion($datos,TIPO_CARACTER); $this->assertEquals("5\\\\67",$datos,$db.': convirtiendo texto con barra invertida'); $datos = "aaa"; $stub->prepararOperacion($datos,TIPO_FECHA); if ($this->valida) $this->assertTrue(false===$datos,$db.': conversion de fecha invalida'); else $this->assertNotEquals('-',$datos,$db.': conversion de fecha invalida'); $errores = ConfIgep::getTransformErrors(); $this->assertEquals(1, count($errores), 'no defecta fecha invalida - '.var_export($errores,true)); // repito las operaciones anteriores pero ahora dentro de un array // como el destino es bd no hace falta indicar decimales en array tipos $datos_orig = array( array('edad'=>"1{$pg}234{$pg}567", 'importe'=>"1{$pg}234{$pg}567{$pd}8", 'nom'=>"567", 'saldo'=>"-567",), array('edad'=>"1{$pg}2{$pg}{$pg}34{$pg}567",'importe'=>"1{$pg}234{$pg}567{$pd}89", 'nom'=>"5'67", 'saldo'=>"+567",), array('edad'=>'1567','importe'=>"1{$pg}234{$pg}567{$pd}890123450", 'nom'=>'56"7',), array('edad'=>'567', 'nom'=>"5\\67",), array('edad'=>'0','importe'=>"0",), array('edad'=>0,'importe'=>0,), ); $datos = $datos_orig; $tipos = array('edad'=>array('tipo'=>TIPO_ENTERO), 'importe'=>array('tipo'=>TIPO_DECIMAL), 'saldo'=>array('tipo'=>TIPO_ENTERO),); $stub->prepararOperacion($datos,$tipos); $this->assertEquals("1{$g}234{$g}567{$d}8",$datos[0]['importe'],$db.': conversion de numero con grupos y decimales (1) a bd (array)'); $this->assertEquals("1{$g}234{$g}567{$d}89",$datos[1]['importe'],$db.': conversion de numero con grupos y decimales (2) a bd (array)'); $this->assertEquals("1{$g}234{$g}567{$d}890123450",$datos[2]['importe'],$db.': conversion de numero con grupos y decimales (muchos) a bd (array)'); $this->assertEquals("0",$datos[4]['importe'],$db.': conversion de numero 0 en cadena (array)'); $this->assertEquals("0",$datos[5]['importe'],$db.': conversion de numero 0 en numero (array)'); $this->assertEquals("1{$g}234{$g}567",$datos[0]['edad'],$db.': conversion de entero con grupos (array)'); $this->assertEquals("1{$g}234{$g}567",$datos[1]['edad'],$db.': conversion de entero con grupos mal puestos (array)'); $this->assertEquals("1{$g}567",$datos[2]['edad'],$db.': conversion de entero introducido sin grupos (array)'); $this->assertEquals("567",$datos[3]['edad'],$db.': conversion de entero sin grupos (array)'); $this->assertEquals("0",$datos[4]['edad'],$db.': conversion de entero 0 en cadena (array)'); $this->assertEquals("0",$datos[5]['edad'],$db.': conversion de entero 0 en numero (array)'); $this->assertEquals("-567",$datos[0]['saldo'],$db.': conversion de entero con signo - (array)'); $this->assertEquals( "567",$datos[1]['saldo'],$db.': conversion de entero con signo + (array)'); $this->assertEquals("567",$datos[0]['nom'],$db.': convirtiendo texto (sin tipo) sin caracteres especiales (array)'); $this->assertEquals("5''67",$datos[1]['nom'],$db.': convirtiendo texto (sin tipo) con comilla simple (array)'); $this->assertEquals('56"7',$datos[2]['nom'],$db.': convirtiendo texto (sin tipo) con comilla doble (array)'); $this->assertEquals("5\\\\67",$datos[3]['nom'],$db.': convirtiendo texto (sin tipo) con barra invertida (array)'); $tipos = array('nom'=>array('tipo'=>TIPO_CARACTER),); $datos = $datos_orig; $stub->prepararOperacion($datos,$tipos); $this->assertEquals("567",$datos[0]['nom'],$db.': convirtiendo texto (con tipo) sin caracteres especiales (array)'); $this->assertEquals("5''67",$datos[1]['nom'],$db.': convirtiendo texto (con tipo) con comilla simple (array)'); $this->assertEquals('56"7',$datos[2]['nom'],$db.': convirtiendo texto (con tipo) con comilla doble (array)'); $this->assertEquals("5\\\\67",$datos[3]['nom'],$db.': convirtiendo texto (con tipo) con barra invertida (array)'); //TODO: testear fechas $stub = null; } } /** * de negocio a bd */ public function testPrepararNumero() { $dbs = IgepDB::supportedDBMS(); $n = ConfIgep::caracteresNumericosNegocio(); $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 ConfIgep::prepararDatos $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; } } /** * de negocio a bd */ public function testPrepararFecha() { $dbs = IgepDB::supportedDBMS(); $n = ConfIgep::mascaraFechasNegocio(); $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 ConfIgep::prepararDatos para fechas $fnegocio = mktime(0, 0, 0, 12, 24, 1995); $fbd = $stub->prepararFecha($fnegocio); $this->assertEquals($fbd, date($d,$fnegocio), $db.': fecha num sin hora'); $fbd = $stub->prepararFecha(date($n,$fnegocio)); $this->assertEquals($fbd, date($d,$fnegocio), $db.': fecha txt sin hora'); $fnegocio = mktime(18, 34, 56, 12, 24, 1995); $fbd = $stub->prepararFecha($fnegocio); $this->assertEquals($fbd, date($d.$fhora,$fnegocio), $db.': fecha num con hora'); $fbd = $stub->prepararFecha(date($n.$fhora,$fnegocio)); $this->assertEquals($fbd, date($d.$fhora,$fnegocio), $db.': fecha txt con hora'); $stub = null; } } /** * @todo Implement testCalcularSecuenciaBD(). */ public function testCalcularSecuenciaBD() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } /** * @todo Implement testCalcularSecuencia(). */ public function testCalcularSecuencia() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } } // Call IgepConexionTest::main() if this source file is executed directly. if (PHPUnit_MAIN_METHOD == 'IgepConexionTest::main') { IgepConexionTest::main(); } ?>