/** * Realiza modificaciones varias a la carga y sincroniza * Prueba Altas, bajas y modificaciones: * -Da de alta un nuevo departamento * -Le asigna los empleados de otro depto (el de transporte) * -Borra el depto de transporte (y sus tareas asignadas tambien) */ function test_memoria_modificaciones_y_sincronizacion() { $this->cargar(); //$this->dr->dump_esquema("INICIAL"); //Al ser necesario que update se ejecuta antes que delete se deben retrazar las constraints $this->dr->persistidor()->retrasar_constraints(); //Depto de transporte $transporte = $this->dr->tabla('depto')->get_id_fila_condicion(array('cod_depto' => 100)); //Nuevo Depto. $dep_c = $this->dr->tabla('depto')->nueva_fila($this->get_fila_test('depto', 'comercial')); //Se transfieren los empleados de prensa a comercial $this->dr->tabla('depto')->set_cursor(current($transporte)); $emple_trans = $this->dr->tabla('empleado')->get_id_filas(); foreach ($emple_trans as $empleado) { $this->dr->tabla('empleado')->cambiar_padre_fila($empleado, array('depto' => $dep_c)); } //Borra del depto. $this->dr->tabla('depto')->eliminar_fila(current($transporte)); $this->dr->sincronizar(); $this->cargar(); //--ASERCIONES $dep_c = $this->dr->tabla('depto')->get_id_fila_condicion($this->get_fila_test('depto', 'comercial')); $tarea_vigilancia = $this->dr->tabla('tarea')->get_id_fila_condicion(array('cod_tarea' => 3)); $this->assertEqual($this->dr->tabla('depto')->get_cantidad_filas(), 2); $this->dr->tabla('depto')->set_cursor(current($dep_c)); $this->assertEqual($this->dr->tabla('empleado')->get_cantidad_filas(), 2); //La tarea de vigilancia no debe estar más asociada con un deptro $this->dr->tabla('tarea')->set_cursor(current($tarea_vigilancia)); $this->assertEqual($this->dr->tabla('depto_tareas')->get_cantidad_filas(), 0); //$this->dr->dump_esquema("CAMBIO"); }
function sincronizar($usar_cursores = false) { //--- Si no hay pantalla definida se asume una if ($this->tabla('pantallas')->get_cantidad_filas() == 0) { $fila = array('identificador' => 'pant_inicial', 'etiqueta' => 'Pantalla Inicial'); $this->tabla('pantallas')->nueva_fila($fila); } parent::sincronizar($usar_cursores); }