require 'rails_helper'

RSpec.describe Base::FontesDeRecursosController, type: :controller do
	sign_in_admin
	set_orcamento_na_sessao

	let(:fonte_de_recursos) {
		FactoryBot.create :alienacao_de_bens
	}

	describe "GET #index" do
		it "atribui a lista de fontes de recursos à @fontes_de_recursos" do
			fonte_de_recursos
			get :index, modulo: 'orcamento', exercicio: '2016'
			expect(assigns(:fontes_de_recursos)).to eq([fonte_de_recursos])
		end
	end

	describe "GET #show" do
		it "atribui a fonte de recursos requisitada à @fonte_de_recursos" do
			get :show, params: { id: fonte_de_recursos.to_param }
			expect(assigns(:fonte_de_recursos)).to eq(fonte_de_recursos)
		end
	end

	describe "PUT #update" do
		it "atualiza a fonte de recursos requisitada" do
			post :update, params: {id: fonte_de_recursos.to_param, base_fonte_de_recursos: { percentual_minimo_de_destinacao: 30.0} }
			fonte_de_recursos.reload
			expect( fonte_de_recursos.percentual_minimo_de_destinacao ).to eq 30.0
		end

		it "atribui a fonte de recursos requisitada à @fonte_de_recursos" do
			post :update, params: {id: fonte_de_recursos.to_param, base_fonte_de_recursos: { percentual_minimo_de_destinacao: 30.0} }
			expect(assigns(:fonte_de_recursos)).to eq(fonte_de_recursos)
		end

		it "redireciona para a fonte de recurso" do
			post :update, params: {id: fonte_de_recursos.to_param, base_fonte_de_recursos: { percentual_minimo_de_destinacao: 30.0} }
			expect(response).to redirect_to( base_fontes_de_recursos_path(@orcamento.class.to_s.downcase, @orcamento.exercicio) )
		end
	end
end
