require 'rails_helper'

RSpec.describe Patrimonio::BemPatrimonial, type: :model do
  cria_configuracao_default

  it{ is_expected.to belong_to(:unidade_gestora).class_name("Loa::UnidadeGestora") }
  it{ is_expected.to belong_to(:item_do_recebimento_de_bem).class_name("Patrimonio::ItemDoRecebimentoDeBem") }
  it{ is_expected.to belong_to(:dados_extras_do_bem).class_name("Patrimonio::DadosExtrasDoBem") }
  it{ is_expected.to belong_to(:orcamento).class_name("Orcamento") }

  it{ is_expected.to have_many(:conservacoes_dos_bens).class_name("Patrimonio::ConservacaoDoBem") }

  it { is_expected.to validate_presence_of(:item_do_recebimento_de_bem_id) }
  it { is_expected.to validate_presence_of(:data_do_tombamento) }
  it { is_expected.to validate_presence_of(:dados_extras_do_bem_id) }


  context "gera o numero do tombamento" do
    it "modelo de numeracao padrao" do
      bem_patrimonial = FactoryBot.create(:patrimonio_bem_patrimonial, sequencia: 3)

      expect(bem_patrimonial.numero_do_tombamento).to eq "201600000000003"
    end
  end

  context "busca a conservação do bem atual" do
    before(:each) do
      @bem_patrimonial = FactoryBot.create(:patrimonio_bem_patrimonial, sequencia: 3)
      conservacao_do_bem = FactoryBot.create(:patrimonio_conservacao_do_bem, bem_patrimonial_id: @bem_patrimonial.id)
      @bem_patrimonial.reload
    end

    it "só tem uma conservação do bem" do
      expect(@bem_patrimonial.conservacao_do_bem_atual).to eq "Novo"
    end

    it "possui mais de uma conservação do bem" do
      conservacao_do_bem = FactoryBot.create(:patrimonio_conservacao_do_bem, bem_patrimonial_id: @bem_patrimonial.id, estado_do_bem: :regular)
      @bem_patrimonial.reload
      expect(@bem_patrimonial.conservacao_do_bem_atual).to eq "Regular"
    end
  end
end
