require 'rails_helper'

RSpec.describe Contabilidade::Retencao, type: :model do
	it { is_expected.to belong_to :nota_fiscal }
	it { is_expected.to belong_to :pagamento }
	it { is_expected.to belong_to :liquidacao }
 	it { is_expected.to belong_to :imposto }
	it { is_expected.to belong_to :conta_extra_orcamentaria }
	it { is_expected.to belong_to :conta_bancaria }
	it { is_expected.to have_many(:taloes_de_receita) }

	# it { is_expected.to validate_numericality_of(:aliquota).is_greater_than_or_equal_to(0).is_less_than_or_equal_to(100) }
	it { is_expected.to validate_numericality_of(:base_de_calculo).is_greater_than(0) }

	describe "Valida valor" do
		subject{
			Contabilidade::Retencao.new(conta_extra_orcamentaria: FactoryBot.create(:conta_extra_orcamentaria))
		}
		it { is_expected.to validate_numericality_of(:valor_calculado).is_greater_than(0) }
	end

	# describe '#set_valor_calculado' do
	# 	context 'before_create' do
	# 		it 'atribui o valor calculado do imposto' do
	# 			retencao_de_iss = FactoryBot.build :retencao_iss
	# 			retencao_de_iss.save
	# 			expect(retencao_de_iss.valor_calculado.to_f).to eq ((retencao_de_iss.base_de_calculo.to_f * retencao_de_iss.aliquota.to_f)/100).round(2)
	# 		end
	# 	end
	#
	# 	context 'before_update' do
	# 		it 'atualiza o valor calculado do imposto' do
	# 			retencao_de_iss = FactoryBot.create :retencao_iss
	# 			retencao_de_iss.update(base_de_calculo: 1.5)
	# 			retencao_de_iss.reload
	#
	# 			expect(retencao_de_iss.valor_calculado.to_f).to eq ( ((retencao_de_iss.base_de_calculo.to_f * retencao_de_iss.aliquota.to_f)/100).round(2) )
	# 		end
	# 	end
	# end
end
