require 'rails_helper'

RSpec.describe Base::Rcl, type: :model do
	it{ is_expected.to belong_to(:modulo).required }

	describe 'soma_dos_percentuais_deve_ser_cem_porcento' do
		it 'é zero' do
			rcl = Base::Rcl.new
			rcl.validate
			expect( rcl.errors[:percentual_janeiro] ).to_not include "A soma dos percentuais deve ser 100%"
		end

		it 'é menor que 100' do
			rcl = Base::Rcl.new(percentual_janeiro: 10)
			rcl.validate
			expect( rcl.errors[:percentual_janeiro] ).to include "A soma dos percentuais deve ser 100%"
		end

		it 'é 100' do
			rcl = Base::Rcl.new(percentual_janeiro: 20, percentual_fevereiro: 80)
			rcl.validate
			expect( rcl.errors[:percentual_janeiro] ).to_not include "A soma dos percentuais deve ser 100%"
		end

		it 'é maior que 100' do
			rcl = Base::Rcl.new(percentual_janeiro: 20, percentual_fevereiro: 90)
			rcl.validate
			expect( rcl.errors[:percentual_janeiro] ).to include "A soma dos percentuais deve ser 100%"
		end
	end

	describe 'percentual(mes)' do
		it 'retorna o percentual do mes' do
			rcl = Base::Rcl.new
			rcl.percentual_janeiro = 10.0
			rcl.percentual_fevereiro = 20.0
			expect(rcl.percentual(1)).to eq(10.0)
			expect(rcl.percentual(2)).to eq(20.0)
		end

		it 'retorna zero para mes invalido' do
			rcl = Base::Rcl.new
			expect(rcl.percentual(13)).to eq(0)
		end
	end
end
