diff --git a/app/models/alert.rb b/app/models/alert.rb index 75d7b80..0d79e38 100644 --- a/app/models/alert.rb +++ b/app/models/alert.rb @@ -30,7 +30,7 @@ class Alert < ActiveRecord::Base } def alerted? - @alerted + self.alerted end def course_name diff --git a/test/fixtures/alerts.yml b/test/fixtures/alerts.yml index 1fcbefb..43f4205 100644 --- a/test/fixtures/alerts.yml +++ b/test/fixtures/alerts.yml @@ -2,12 +2,25 @@ one: user_id: 1 - department: MyString - course: MyString + department: CSE + course: 101 alerted: false + semester: US13 + sections: [1, 2, 3] two: user_id: 1 - department: MyString - course: MyString + department: IAH + course: 241A + alerted: true + semester: FS13 + sections: [3, 6, 9] + +three: + user_id: 2 + department: TES + course: 312 alerted: false + semester: SS14 + sections: [5, 6, 11] + diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index c63aac0..819ceaa 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -1,11 +1,7 @@ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html +one: + id: 1 + +two: + id: 2 -# This model initially had no columns defined. If you add columns to the -# model remove the '{}' from the fixture names and add the columns immediately -# below each fixture, per the syntax in the comments below -# -one: {} -# column: value -# -two: {} -# column: value diff --git a/test/functional/alerts_controller_test.rb b/test/functional/alerts_controller_test.rb index 5f146ca..c72c92f 100644 --- a/test/functional/alerts_controller_test.rb +++ b/test/functional/alerts_controller_test.rb @@ -3,6 +3,10 @@ require 'test_helper' class AlertsControllerTest < ActionController::TestCase setup do @alert = alerts(:one) + + @user = users(:one) + + sign_in :user, @user end test "should get index" do @@ -18,7 +22,12 @@ class AlertsControllerTest < ActionController::TestCase test "should create alert" do assert_difference('Alert.count') do - post :create, alert: { alerted: @alert.alerted, course: @alert.course, department: @alert.department, user_id: @alert.user_id } + post :create, alert: { + course: @alert.course, + department: @alert.department, + semester: @alert.semester, + sections: @alert.sections + } end assert_redirected_to alert_path(assigns(:alert)) @@ -35,7 +44,12 @@ class AlertsControllerTest < ActionController::TestCase end test "should update alert" do - put :update, id: @alert, alert: { alerted: @alert.alerted, course: @alert.course, department: @alert.department, user_id: @alert.user_id } + put :update, id: @alert, alert: { + course: @alert.course, + department: @alert.department, + semester: @alert.semester, + sections: @alert.sections + } assert_redirected_to alert_path(assigns(:alert)) end diff --git a/test/test_helper.rb b/test/test_helper.rb index 8bf1192..e24de7e 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -11,3 +11,8 @@ class ActiveSupport::TestCase # Add more helper methods to be used by all tests here... end + +class ActionController::TestCase + include Devise::TestHelpers +end + diff --git a/test/unit/alert_test.rb b/test/unit/alert_test.rb index b59c65e..8a12865 100644 --- a/test/unit/alert_test.rb +++ b/test/unit/alert_test.rb @@ -1,7 +1,35 @@ require 'test_helper' class AlertTest < ActiveSupport::TestCase - # test "the truth" do - # assert true - # end + def setup + @alert_one = alerts(:one) + @alert_two = alerts(:two) + @alert_three = alerts(:three) + + @user_one = users(:one) + end + + test "should create a new alert" do + assert_kind_of Alert, Alert.new + end + + test "should return false if has not been alerted" do + assert !@alert_one.alerted? + end + + test "should return true if has been alerted" do + assert @alert_two.alerted? + end + + test "should return alerts for user when asked" do + assert !Alert.user_alerts(@user_one).empty? + end + + test "should only return alerts for correct user when asked" do + assert Alert.user_alerts(@user_one).all? { |a| a.user_id == @user_one.id } + end + + test "should return the full course name" do + assert_equal @alert_one.course_name, "CSE 101" + end end