require 'spec_helper'

describe Beispiel, :type=>:model do
  let_studium_lva
#  before(:each) do
#    s=FactoryGirl.create(:studium)
#    mg=FactoryGirl.create(:modulgruppe, studium_id: s.id)#

#    m=FactoryGirl.build(:other_modul)
#    m.modulgruppen << mg
#    m.save!

#    @l=FactoryGirl.build(:lva)  
#    @l.modul << m
#    @l.save!
#  end
  let(:lva){FactoryGirl.build_stubbed(:lva)} 
  let(:beispiel){FactoryGirl.build(:beispiel, lva: lva)}
    
  it "should be created"  do
    expect{beispiel.save!; Sunspot.commit}.to change{Beispiel.count}.by(1)
  end
  it "is not valid without lva" do
    b=FactoryGirl.build(:beispiel)
    expect(b.valid?).to be false
  end
  it "responds to comments" do
    expect(beispiel.respond_to?(:comments)).to be true
  end
  it "responds to get_flag" do
    expect(beispiel.respond_to?(:get_flag)).to be true
  end
  [:delete, :goodquality, :badquality].each do |flg|
    it " has default false for flag #{flg}" do
      b=beispiel
      expect(b.respond_to?(:get_flag)).to be true
      expect(b.get_flag(flg)).to be false
    end

  it "responds to flag setter #{flg}" do
    expect(beispiel.respond_to?("flag_#{flg.to_s}".to_sym)).to be true
  end  
end 

  it "should be in not_flag beispiele" do 
    beispiel.save!
    bsp= Beispiel.not_flag_delete
    expect(bsp).to include beispiel
  end
  it "should not be in not_flag" do
    beispiel.save!
    bsp= Beispiel.not_flag_delete
    expect{beispiel.flag_delete=true; beispiel.save!}.to change{ Beispiel.not_flag_delete.count }.by(-1)
    expect{beispiel.flag_delete=nil; beispiel.save!}.to change{ Beispiel.not_flag_delete.count }.by(1)

  
end

end
