public function loadArray(Linha $cnabLinha, $array) { $this->validateArray($array); $keys = array('generic'); if (array_key_exists(sprintf('%03d', $this->codigo_banco), $array)) { $keys[] = sprintf('%03d', $this->codigo_banco); } foreach ($array as $key => $fields) { if (in_array($key, $keys)) { foreach ($fields as $name => $info) { $picture = $info['picture']; $start = $info['pos'][0]; $end = $info['pos'][1]; $default = isset($info['default']) ? $info['default'] : false; $options = $info; $cnabLinha->addField($name, $start, $end, $picture, $default, $options); } } } }
/** * @depends testPodeAdicionarCampo */ public function testPodeSubstituirCampo() { $linha = new Linha(); $linha->addField('codigo_cedente_dv', 36, 36, '9(1)', '1', array()); $linha->addField('uso_exclusivo_banco_01', 33, 40, 'X(8)', str_repeat(' ', 8), array()); $this->assertFalse($linha->existField('codigo_cedente_dv')); $this->assertTrue($linha->existField('uso_exclusivo_banco_01')); $linha = new Linha(); $linha->addField('codigo_banco', 1, 3, '9(3)', '000', array()); $linha->addField('numero_lote', 4, 7, '9(4)', '000', array()); $this->assertTrue($linha->existField('codigo_banco')); $this->assertTrue($linha->existField('numero_lote')); $linha->addField('codigo_banco', 1, 7, '9(7)', '00000000', array()); $this->assertTrue($linha->existField('codigo_banco')); $this->assertTrue($linha->validate()); $linha->addField('codigo_e_lote', 1, 7, '9(7)', '2', array()); $this->assertTrue($linha->existField('codigo_e_lote')); $this->assertFalse($linha->existField('codigo_banco')); $this->assertFalse($linha->existField('numero_lote')); $this->assertTrue($linha->validate()); return $linha; }