require 'rails_helper'

RSpec.describe Licitacao::OrcamentoDaDespesaDoContrato, type: :model do
	it { is_expected.to belong_to(:orcamento_da_despesa).class_name("Loa::OrcamentoDaDespesa").required }
	it { is_expected.to belong_to(:contrato).inverse_of(:orcamentos_da_despesa_do_contrato).required }
	it { is_expected.to belong_to(:sub_elemento_de_despesa).class_name("Contabilidade::SubElementoDeDespesa") }

	it { is_expected.to validate_uniqueness_of(:orcamento_da_despesa_id).scoped_to(:contrato_id, :sub_elemento_de_despesa_id) }

	[:orcamento_da_despesa_id, :contrato_id, :sub_elemento_de_despesa_id].each do |campo|
		it { is_expected.to validate_presence_of campo }
	end

	describe '#classificacao_completa' do
		it 'retorna a classificação completa (Dotação) do orçamento de despesa' do
			contrato = FactoryBot.create( :licitacao_contrato, :com_lotes_do_contrato )
			expect( contrato.orcamentos_da_despesa_do_contrato.first.classificacao_completa ).to eq "04 0002 80 126 1010 3.005 0001 3.3.90.30.99"
		end
	end
end
