require 'rails_helper'
RSpec.describe ImportacaoTcm::ContabilidadeContaBancaria, type: :model do
	let(:dados_orcamento) {
		{
			"codigo_municipio" => "057",
			"exercicio_orcamento" => "201600",
			"nu_lei_orcamento" => "0000010435",
			"valor_total_fixado_orcamento" => "7272573519.0000",
			"numero_perc_sup_orcamento" => "25",
			"valor_total_supl_orcamento" => "1818143379.7500",
			"data_envio_loa" => "2015-10-14 00:00:00",
			"data_aprov_loa" => "2015-12-17 00:00:00",
			"data_public_loa" => "2015-12-28 00:00:00"
		}
	}

	let(:orcamento) {
		ImportacaoTcm::Loa.criar_orcamento(dados_orcamento)
	}

	let(:dados_contas_bancarias) {
		[
			{
				"codigo_municipio" => "057",
				"exercicio_orcamento" => "201600",
				"codigo_orgao" => "01",
				"codigo_unidade" => "10  ",
				"numero_banco" => "0001",
				"numero_agencia" => "003302",
				"numero_conta" => "0000122580",
				"data_abertura" => "2016-01-01 00 => 00 => 00",
				"valor_saldo_abertura" => "0.0000",
				"data_referencia" => "201601",
				"tipo_conta" => "1",
				"codigo_funcao" => "01",
				"descricao_objetivo" => "LEGISLATIVA"
			},
			{
				"codigo_municipio" => "099",
				"exercicio_orcamento" => "201600",
				"codigo_orgao" => "03",
				"codigo_unidade" => "01  ",
				"numero_banco" => "0001",
				"numero_agencia" => "003302",
				"numero_conta" => "0000275409",
				"data_abertura" => "2016-01-01 00 => 00 => 00",
				"valor_saldo_abertura" => "0.0000",
				"data_referencia" => "201601",
				"tipo_conta" => "1",
				"codigo_funcao" => "13",
				"descricao_objetivo" => "ACOES E SERVICOS PUBLICOS VINCULADOS A CULTURA"
			}
		]
	}

	describe "Importa os dados de contas bancárias da API do TCM" do

		xit ".criar_orcamento" do
			expect( orcamento ).not_to be_nil
		end

		xit ".criar_agencia_bancaria" do
			load File.expand_path('seed_bancos.rb', Rails.root.to_s + '/db')

			ImportacaoTcm::ContabilidadeContaBancaria.criar_contas_bancarias(dados_contas_bancarias, orcamento)
			dados_contas_bancarias.each do |conta_bancaria_tcm|
				expect(orcamento.agencias.find_by(
				numero_da_agencia: conta_bancaria_tcm['numero_agencia'])
				).not_to be_nil
			end
		end

		xit ".criar_conta_bancaria" do
			load File.expand_path('seed_bancos.rb', Rails.root.to_s + '/db')

			ImportacaoTcm::ContabilidadeContaBancaria.criar_contas_bancarias(dados_contas_bancarias, orcamento)
			dados_contas_bancarias.each do |conta_bancaria_tcm|
				agencia = orcamento.agencias.find_by( numero_da_agencia: conta_bancaria_tcm['numero_agencia'] )
				expect(Base::ContaBancaria.find_by(
				agencia_id: agencia.id,
				numero_da_conta: conta_bancaria_tcm['numero_conta'])
				).not_to be_nil
			end
		end
	end
end
