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;
 }