Lots of stuff, I got too tired to keep perfect revision history
[cs356-p2-videostore.git] / test / functional / bonus_policy_controller_test.rb
diff --git a/test/functional/bonus_policy_controller_test.rb b/test/functional/bonus_policy_controller_test.rb
new file mode 100644 (file)
index 0000000..97676f6
--- /dev/null
@@ -0,0 +1,92 @@
+require File.dirname(__FILE__) + '/../test_helper'
+require 'bonus_policy_controller'
+
+# Re-raise errors caught by the controller.
+class BonusPolicyController; def rescue_action(e) raise e end; end
+
+class BonusPolicyControllerTest < Test::Unit::TestCase
+  fixtures :bonus_policies
+
+  def setup
+    @controller = BonusPolicyController.new
+    @request    = ActionController::TestRequest.new
+    @response   = ActionController::TestResponse.new
+
+    @first_id = bonus_policies(:first).id
+  end
+
+  def test_index
+    get :index
+    assert_response :success
+    assert_template 'list'
+  end
+
+  def test_list
+    get :list
+
+    assert_response :success
+    assert_template 'list'
+
+    assert_not_nil assigns(:bonus_policies)
+  end
+
+  def test_show
+    get :show, :id => @first_id
+
+    assert_response :success
+    assert_template 'show'
+
+    assert_not_nil assigns(:bonus_policy)
+    assert assigns(:bonus_policy).valid?
+  end
+
+  def test_new
+    get :new
+
+    assert_response :success
+    assert_template 'new'
+
+    assert_not_nil assigns(:bonus_policy)
+  end
+
+  def test_create
+    num_bonus_policies = BonusPolicy.count
+
+    post :create, :bonus_policy => {}
+
+    assert_response :redirect
+    assert_redirected_to :action => 'list'
+
+    assert_equal num_bonus_policies + 1, BonusPolicy.count
+  end
+
+  def test_edit
+    get :edit, :id => @first_id
+
+    assert_response :success
+    assert_template 'edit'
+
+    assert_not_nil assigns(:bonus_policy)
+    assert assigns(:bonus_policy).valid?
+  end
+
+  def test_update
+    post :update, :id => @first_id
+    assert_response :redirect
+    assert_redirected_to :action => 'show', :id => @first_id
+  end
+
+  def test_destroy
+    assert_nothing_raised {
+      BonusPolicy.find(@first_id)
+    }
+
+    post :destroy, :id => @first_id
+    assert_response :redirect
+    assert_redirected_to :action => 'list'
+
+    assert_raise(ActiveRecord::RecordNotFound) {
+      BonusPolicy.find(@first_id)
+    }
+  end
+end