type_safe_spec.rb 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 DateTime bei Daten zurück' do
  9. @sm.geburtsdatum.must_be_instance_of DateTime
  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. skip
  16. end
  17. end
  18. describe 'null-Objekte geben immer etwas zurück' do
  19. before do
  20. # lade einen Standardschueler
  21. @sm = Schueler.where(:Status => 2, :Geloescht => "-", :Gesperrt => "-").first
  22. end
  23. it 'gibt nil zurück, wenn leer' do
  24. @sm.Bemerkungen.must_equal nil
  25. end
  26. it 'gibt leeren String zurück, wenn leer und typensicher' do
  27. @sm.bemerkungen.must_equal ""
  28. end
  29. it 'gibt Fehler zurück, wenn Methode nicht existiert' do
  30. proc {@sm.bemerrrrrrrrrkungen}.must_raise NoMethodError
  31. end
  32. it 'gibt 1899 als Datum zurück, wenn strftime aufgerufen wird' do
  33. @sm.geburtsdatum.strftime("%Y").must_equal "1899"
  34. end
  35. it 'gibt nil zurück, wenn Geburtsdatum leer ist' do
  36. @sm.Geburtsdatum.must_equal nil
  37. end
  38. end
  39. end