type_safe_spec.rb 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. require "#{File.dirname(__FILE__)}/spec_helper"
  2. describe Schueler do
  3. describe 'null-Objekte passen sich den DB-Typen an' do
  4. before do
  5. # lade einen Standardschueler
  6. @sm = Schueler.where(:Status => 2, :Geloescht => "-", :Gesperrt => "-").first
  7. end
  8. it 'gibt ein Time-Objekt bei Daten zurück' do
  9. @sm.geburtsdatum.must_be_instance_of Time
  10. end
  11. it 'gibt String für Text zurück' do
  12. @sm.bemerkungen.must_be_instance_of String
  13. end
  14. it 'gibt 0 bei fehlendem Integer zurück' do
  15. Schueler[6176].halbjahr(2014,1).sum_fehl_std.must_equal 0
  16. Schueler[6176].halbjahr(2014,1).SumFehlStd.must_equal nil
  17. end
  18. end
  19. describe 'null-Objekte geben immer etwas zurück' do
  20. before do
  21. # lade einen Standardschueler
  22. @sm = Schueler.where(:Status => 2, :Geloescht => "-", :Gesperrt => "-").first
  23. end
  24. it 'gibt nil zurück, wenn leer' do
  25. @sm.Bemerkungen.must_equal nil
  26. end
  27. it 'gibt leeren String zurück, wenn leer und typensicher' do
  28. @sm.bemerkungen.must_equal ""
  29. end
  30. it 'gibt Fehler zurück, wenn Methode nicht existiert' do
  31. proc {@sm.bemerrrrrrrrrkungen}.must_raise NoMethodError
  32. end
  33. it 'gibt 1899 als Datum zurück, wenn strftime aufgerufen wird' do
  34. @sm.geburtsdatum.strftime("%Y").must_equal "1899"
  35. end
  36. it 'gibt nil zurück, wenn Geburtsdatum leer ist' do
  37. @sm.Geburtsdatum.must_equal nil
  38. end
  39. end
  40. end