Add real Gamegenre support
[cs356-p2-videostore.git] / test / functional / gamegenre_controller_test.rb
diff --git a/test/functional/gamegenre_controller_test.rb b/test/functional/gamegenre_controller_test.rb
new file mode 100644 (file)
index 0000000..aa660e6
--- /dev/null
@@ -0,0 +1,92 @@
+require File.dirname(__FILE__) + '/../test_helper'
+require 'gamegenre_controller'
+
+# Re-raise errors caught by the controller.
+class GamegenreController; def rescue_action(e) raise e end; end
+
+class GamegenreControllerTest < Test::Unit::TestCase
+  fixtures :gamegenres
+
+  def setup
+    @controller = GamegenreController.new
+    @request    = ActionController::TestRequest.new
+    @response   = ActionController::TestResponse.new
+
+    @first_id = gamegenres(: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(:gamegenres)
+  end
+
+  def test_show
+    get :show, :id => @first_id
+
+    assert_response :success
+    assert_template 'show'
+
+    assert_not_nil assigns(:gamegenre)
+    assert assigns(:gamegenre).valid?
+  end
+
+  def test_new
+    get :new
+
+    assert_response :success
+    assert_template 'new'
+
+    assert_not_nil assigns(:gamegenre)
+  end
+
+  def test_create
+    num_gamegenres = Gamegenre.count
+
+    post :create, :gamegenre => {}
+
+    assert_response :redirect
+    assert_redirected_to :action => 'list'
+
+    assert_equal num_gamegenres + 1, Gamegenre.count
+  end
+
+  def test_edit
+    get :edit, :id => @first_id
+
+    assert_response :success
+    assert_template 'edit'
+
+    assert_not_nil assigns(:gamegenre)
+    assert assigns(:gamegenre).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 {
+      Gamegenre.find(@first_id)
+    }
+
+    post :destroy, :id => @first_id
+    assert_response :redirect
+    assert_redirected_to :action => 'list'
+
+    assert_raise(ActiveRecord::RecordNotFound) {
+      Gamegenre.find(@first_id)
+    }
+  end
+end