type_safe_spec.rb 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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_be_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_be_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_be_nil
  38. end
  39. end
  40. describe 'allow_nil entweder true oder false' do
  41. before do
  42. # lade einen Standardschueler
  43. @sm = Schueler.where(:Status => 2, :Geloescht => "-", :Gesperrt => "-").first
  44. end
  45. it 'gibt leer zurück, wenn default' do
  46. @sm.bemerkungen.must_equal ''
  47. end
  48. it 'gibt nil zurück, wenn leer und typensicher und true bei allow_nil' do
  49. @sm.bemerkungen(true).must_be_nil
  50. @sm.geburtsdatum(true).must_be_nil
  51. end
  52. end
  53. end