public function testRetornoGenerateModelSuccess()
 {
     $layout = new Layout(__DIR__ . '/../../../config/itau/cnab400/cobranca.yml');
     $retornoFile = new RetornoFile($layout, __DIR__ . '/../../data/cobranca-itau-cnab400.ret');
     $this->assertEquals(1, $retornoFile->getTotalLotes());
     // gerou corretamente?
     $retorno = $retornoFile->generate();
     $this->assertInstanceOf('CnabParser\\Model\\Retorno', $retorno);
     $this->assertInstanceOf('StdClass', $retorno->header_arquivo);
     $this->assertNotEmpty($retorno->lotes);
     // testa valores do retorno
     // verifica header
     $this->assertEquals(0, $retorno->header_arquivo->tipo_registro);
     $this->assertEquals(2, $retorno->header_arquivo->codigo_retorno);
     $this->assertEquals('RETORNO', $retorno->header_arquivo->literal_retorno);
     $this->assertEquals(1, $retorno->header_arquivo->codigo_servico);
     $this->assertEquals('COBRANCA', $retorno->header_arquivo->literal_servico);
     $this->assertEquals(111, $retorno->header_arquivo->agencia);
     $this->assertEquals(0, $retorno->header_arquivo->zeros);
     $this->assertEquals(12345, $retorno->header_arquivo->conta);
     $this->assertEquals(0, $retorno->header_arquivo->dac);
     $this->assertEquals('', $retorno->header_arquivo->brancos_01);
     $this->assertEquals('Teste de Retorno', $retorno->header_arquivo->nome_empresa);
     $this->assertEquals(341, $retorno->header_arquivo->codigo_banco);
     $this->assertEquals('BANCO ITAU S.A.', $retorno->header_arquivo->nome_banco);
     $this->assertEquals(220813, $retorno->header_arquivo->data_geracao);
     $this->assertEquals(1600, $retorno->header_arquivo->densidade);
     $this->assertEquals('BPI', $retorno->header_arquivo->unidade_densidade);
     $this->assertEquals(112, $retorno->header_arquivo->numero_sequencial_arquivo);
     $this->assertEquals(210613, $retorno->header_arquivo->data_credito);
     $this->assertEquals('', $retorno->header_arquivo->brancos_02);
     $this->assertEquals(1, $retorno->header_arquivo->numero_sequencial_registro);
     // verifica trailer
     $this->assertEquals(9, $retorno->trailer_arquivo->tipo_registro);
     $this->assertEquals(2, $retorno->trailer_arquivo->codigo_retorno);
     $this->assertEquals(1, $retorno->trailer_arquivo->codigo_servico);
     $this->assertEquals(341, $retorno->trailer_arquivo->codigo_banco);
     $this->assertEquals('', $retorno->trailer_arquivo->brancos_01);
     $this->assertEquals(0, $retorno->trailer_arquivo->quantidade_titulos_simples);
     $this->assertEquals(0, $retorno->trailer_arquivo->valor_total_simples);
     $this->assertEquals('00000000', $retorno->trailer_arquivo->aviso_bancario_01);
     $this->assertEquals('', $retorno->trailer_arquivo->brancos_02);
     $this->assertEquals(0, $retorno->trailer_arquivo->quantidade_titulos_vinculada);
     $this->assertEquals(0, $retorno->trailer_arquivo->valor_total_vinculada);
     $this->assertEquals('00000000', $retorno->trailer_arquivo->aviso_bancario_02);
     $this->assertEquals('                                                  000000000000000000000000000000', $retorno->trailer_arquivo->brancos_03);
     $this->assertEquals(0, $retorno->trailer_arquivo->quantidade_titulos_direta);
     $this->assertEquals(0, $retorno->trailer_arquivo->valor_total_direta);
     $this->assertEquals('00000000', $retorno->trailer_arquivo->aviso_bancario_03);
     $this->assertEquals(112, $retorno->trailer_arquivo->controle_arquivo);
     $this->assertEquals(4, $retorno->trailer_arquivo->quantidade_detalhes);
     $this->assertEquals(1895.76, $retorno->trailer_arquivo->valor_total_informado);
     $this->assertEquals('', $retorno->trailer_arquivo->brancos_04);
     $this->assertEquals(6, $retorno->trailer_arquivo->numero_sequencial_registro);
     $this->assertEquals(4, $retorno->getTotalTitulos());
 }
 public function testRetornoGenerateModelSuccess()
 {
     $layout = new Layout(__DIR__ . '/../../../config/itau/cnab240/cobranca.yml');
     $retornoFile = new RetornoFile($layout, __DIR__ . '/../../data/cobranca-itau-cnab240.ret');
     $this->assertEquals(1, $retornoFile->getTotalLotes());
     $retorno = $retornoFile->generate();
     $this->assertInstanceOf('CnabParser\\Model\\Retorno', $retorno);
     $this->assertInstanceOf('StdClass', $retorno->header_arquivo);
     $this->assertNotEmpty($retorno->lotes);
     // verifica header_arquivo
     $this->assertEquals(341, $retorno->header_arquivo->codigo_banco);
     $this->assertEquals(0, $retorno->header_arquivo->lote_servico);
     $this->assertEquals(0, $retorno->header_arquivo->tipo_registro);
     $this->assertEquals('', $retorno->header_arquivo->brancos_01);
     $this->assertEquals(2, $retorno->header_arquivo->tipo_inscricao);
     $this->assertEquals('15594050000111', $retorno->header_arquivo->inscricao_numero);
     $this->assertEquals('', $retorno->header_arquivo->brancos_02);
     $this->assertEquals(0, $retorno->header_arquivo->zeros_01);
     $this->assertEquals(4459, $retorno->header_arquivo->agencia);
     $this->assertEquals('', $retorno->header_arquivo->brancos_03);
     $this->assertEquals(0, $retorno->header_arquivo->zeros_02);
     $this->assertEquals(17600, $retorno->header_arquivo->conta);
     $this->assertEquals('', $retorno->header_arquivo->brancos_04);
     $this->assertEquals(6, $retorno->header_arquivo->dac);
     $this->assertEquals('TRACY INFORMATICA LTDA - ME', $retorno->header_arquivo->nome_empresa);
     $this->assertEquals('BANCO ITAU S.A.', $retorno->header_arquivo->nome_banco);
     $this->assertEquals('', $retorno->header_arquivo->brancos_05);
     $this->assertEquals(2, $retorno->header_arquivo->codigo_arquivo);
     $this->assertEquals('05072012', $retorno->header_arquivo->data_geracao);
     $this->assertEquals('163917', $retorno->header_arquivo->hora_geracao);
     $this->assertEquals(4, $retorno->header_arquivo->numero_sequencial_arquivo_retorno);
     $this->assertEquals('040', $retorno->header_arquivo->versao_layout_arquivo);
     $this->assertEquals(0, $retorno->header_arquivo->zeros_03);
     $this->assertEquals('', $retorno->header_arquivo->brancos_06);
     $this->assertEquals(0, $retorno->header_arquivo->zeros_04);
     $this->assertEquals('', $retorno->header_arquivo->brancos_07);
     // verifica trailer_arquivo
     $this->assertEquals(341, $retorno->trailer_arquivo->codigo_banco);
     $this->assertEquals(9999, $retorno->trailer_arquivo->lote_servico);
     $this->assertEquals(9, $retorno->trailer_arquivo->registro);
     $this->assertEquals('', $retorno->trailer_arquivo->brancos_01);
     $this->assertEquals(1, $retorno->trailer_arquivo->total_lotes);
     $this->assertEquals(8, $retorno->trailer_arquivo->total_registros);
     $this->assertEquals(0, $retorno->trailer_arquivo->zeros_01);
     $this->assertEquals('', $retorno->trailer_arquivo->brancos_02);
     $this->assertEquals(1, $retorno->getTotalLotes());
     $this->assertEquals(2, $retorno->getTotalTitulos());
 }