schueler_spec.rb 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. require "#{File.dirname(__FILE__)}/spec_helper"
  2. describe Schueler do
  3. before do
  4. # lade einen Standardschueler
  5. @sm = Schueler.where(:Status => 2, :Geloescht => "-", :Gesperrt => "-").first
  6. end
  7. describe 'Models funktionieren erwartungsgemäß und geben einen Wert aus der Tabelle zurück' do
  8. it 'Model gibt Vornamen zurück' do
  9. @sm.Vorname.must_equal "Tanja"
  10. end
  11. end
  12. describe 'Associations funktionieren Erwartungsgemäß' do
  13. it 'geben Fachklassenbezeichnung zurück (eigeneschule_fachklassen:Fachklassen)' do
  14. @sm.fachklasse.Bezeichnung.must_equal "Friseur"
  15. end
  16. it 'geben Noten aus dem angegebenen Halbjahr und Jahr zurück (via Lernabschnitte und Leistungen)' do
  17. @sm.erstes_halbjahr(2013).noten.first.ID.must_equal 163701
  18. end
  19. it 'gibt Konferenzdatum zurück (Lernabschnitte)' do
  20. # offenbar keine in der Testdatenbank eingetragen
  21. # deshalb Default-Objekt anfordern
  22. @sm.erstes_halbjahr(2013).konferenzdatum.must_be_instance_of DateTime
  23. end
  24. it 'gibt berufsbezogene Fächer aus den angegebenen Lernabschnitten zurück' do
  25. @sm.zweites_halbjahr(2013).berufsbezogen.map{|n|n.fach.FachKrz}.must_include 'FF'
  26. end
  27. it 'gibt berufsübergreifende Fächer aus den angegebenen Lernabschnitten zurück' do
  28. @sm.zweites_halbjahr(2013).berufsuebergreifend.map{|n|n.fach.FachKrz}.must_include 'D'
  29. end
  30. it 'gibt Fächer aus dem Differenzierungsbereich zurück über angegebenen Lernabschnitt' do
  31. Schueler[394].erstes_halbjahr(2007).differenzierungsbereich.map{|n|n.fach.FachKrz}.must_include 'CHDIFF'
  32. end
  33. it 'gibt Fächer aus allen Fächergruppen zurück' do
  34. fg = @sm.zweites_halbjahr(2013).faechergruppen.flatten.count
  35. fg.must_equal (@sm.zweites_halbjahr(2013).noten.select{|n|n.AufZeugnis == '+'}).count
  36. end
  37. end
  38. describe 'gibt die korrekte Anzahl von Schülern über Klasse zurück' do
  39. it 'returns a group of people eg Klasse xy' do
  40. Schueler.where(:Klasse => 'FOS2').count.must_equal 124
  41. end
  42. end
  43. describe 'Methoden funktionieren erwartungsgemäß' do
  44. it 'gibt korrekte Berufsbezeichnung nach Geschlecht zurück' do
  45. @sm.berufsbezeichnung_mw.must_include "in"
  46. end
  47. it 'gibt die korrekte Anrede zurück' do
  48. @sm.anrede.must_equal "Frau"
  49. end
  50. it 'gibt an, ob ein Schüler volljährig ist' do
  51. @sm.volljaehrig?.must_equal true
  52. end
  53. it 'gibt ein zusammengesetztes Datum des Schuljahres zurück' do
  54. @sm.schuljahr.must_equal "2014/15"
  55. end
  56. it 'gibt passende Bezeichnung Schüler oder Schülerin zurück' do
  57. @sm.schueler_in.must_equal "Schülerin"
  58. Schueler[24].schueler_in.must_equal "Schüler"
  59. end
  60. it 'gibt passende Bezeichnung Studierender oder Studierende zurück' do
  61. @sm.studierende_r.must_equal "Studierende"
  62. Schueler[24].studierende_r.must_equal "Studierender"
  63. end
  64. it 'gibt die Textbezeichnung für eine Note zurück' do
  65. @sm.zweites_halbjahr(2013).noten[5].note.must_equal "gut"
  66. end
  67. it 'gibt die Textbezeichnung auch bei ungeraden Noten zurück' do
  68. Schueler[178].erstes_halbjahr(2010).noten[0].note.must_equal "mangelhaft"
  69. Schueler[178].erstes_halbjahr(2010).noten[0].NotenKrz.must_equal "5-"
  70. end
  71. it 'gibt die volle Fachbezeichnung zurück' do
  72. @sm.zweites_halbjahr(2013).noten[5].bezeichnung.must_equal "Farb- und Formveränderung"
  73. end
  74. it 'gibt die korrekte Fachgruppen_ID zurück' do
  75. @sm.zweites_halbjahr(2013).noten[5].fachgruppe_ID.must_equal 20
  76. end
  77. it 'gibt den Namen des Klassenlehrers zurück' do
  78. @sm.zweites_halbjahr(2013).v_name_klassenlehrer.must_equal "P. Ronnewinkel"
  79. end
  80. it 'gibt an, ob Klassenlehrer/in' do
  81. @sm.zweites_halbjahr(2013).klassenlehrer_in.must_equal "Klassenlehrer"
  82. end
  83. it 'gibt das zweite Halbjahr zurück' do
  84. @sm.zweites_halbjahr(2013).Abschnitt.must_equal 2
  85. @sm.zweites_halbjahr(2013).Jahr.must_equal 2013
  86. end
  87. it 'gibt das erste Halbjahr zurück' do
  88. @sm.erstes_halbjahr(2014).Abschnitt.must_equal 1
  89. @sm.erstes_halbjahr(2014).Jahr.must_equal 2014
  90. end
  91. it 'gibt das aktuelle Halbjahr zurück' do
  92. @sm.akt_halbjahr.Jahr.must_equal 2014
  93. @sm.akt_halbjahr.Abschnitt.must_equal 1
  94. end
  95. it 'wählt das angegebene Jahr und Halbjahr aus' do
  96. @sm.halbjahr(2013, 2).ID.must_equal 14478
  97. end
  98. it 'gibt passendes Schuljahr zurück' do
  99. @sm.halbjahr(2013, 2).schuljahr.must_equal "2013/14"
  100. end
  101. end
  102. end