Major update of Selectricity to work with Rails 2.2.2 from 1.2!
[selectricity] / test / unit / selectricityservice_test.rb
diff --git a/test/unit/selectricityservice_test.rb b/test/unit/selectricityservice_test.rb
deleted file mode 100644 (file)
index 1c28cf1..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-require File.dirname(__FILE__) + '/../test_helper'
-require 'selectricity_service_controller'
-
-class SelectricityServiceTest < Test::Unit::TestCase
-  def setup
-    @controller=SelectricityServiceController.new
-    @request=ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new
-  end
-
-  def test_list_quickvotes
-    result = invoke_delegated :vote, :list_quickvotes
-    assert_instance_of Array, result
-    assert result.length > 0
-  end
-
-  def test_create_quickvote
-    election = ElectionStruct.new(
-      { :name => "TestVote",
-        :description => "Test Vote",
-        :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"] })
-    assert_create_quickvote_succeeds election
-  end
-
-  def test_cast_quickvote
-    test_create_quickvote
-    election = invoke_delegated :vote, :get_quickvote, "TestVote"
-    casted_vote = election.candidate_ids.sort_by {rand} #Shuffles
-    assert_cast_quickvote_succeeds "TestVote", 42, [casted_vote]
-  end
-
-  def test_cast_nil_quickvote
-    assert_cast_quickvote_fails nil, nil, nil
-    assert_cast_quickvote_fails "foo", nil, nil
-    assert_cast_quickvote_fails "foo", 33, []
-    test_create_quickvote
-    assert_cast_quickvote_fails "TestVote", 42,nil
-    assert_cast_quickvote_fails "TestVote", nil, []
-  end
-
-  def test_cast_malformed_votelist
-    test_create_quickvote
-    election = invoke_delegated :vote, :get_quickvote, "TestVote"
-    assert_cast_quickvote_fails "TestVote", 11, [election.candidate_ids[0]]
-    assert_cast_quickvote_fails "TestVote", 11, [1, 2]
-    assert_cast_quickvote_fails "TestVote", 11, [election.candidate_ids[0],
-                                                 election.candidate_ids[0],
-                                                 election.candidate_ids[1],
-                                                 election.candidate_ids[1],
-                                                 election.candidate_ids[2]]
-  end
-
-  def test_get_nonexistent_quickvote
-    assert_raises ArgumentError do
-      qv = invoke_delegated :vote, :get_quickvote, "asdfasdfasdf"
-    end
-  end
-
-  def test_get_voters_nonexistent_quickvote
-    assert_raises(ArgumentError) { invoke_delegated(:vote,
-                                  :get_quickvote_votes, "asdfasdf") }
-  end
-
-  def test_get_candidate_map_nonexistent_quickvote
-    assert_raises(ArgumentError) { invoke_delegated(:vote,
-                                   :get_quickvote_candidate_map,
-                                   "asdfasdf") }
-  end
-
-  def test_cast_mass_quickvote
-    test_create_quickvote
-    election = invoke_delegated(:vote, :get_quickvote, "TestVote")
-    20.times do |t|
-      casted_vote = election.candidate_ids.sort_by { rand }
-      assert_cast_quickvote_succeeds "TestVote", t, [casted_vote]
-    end
-  end
-
-  def test_cast_quickvote_nonexistent
-    assert_cast_quickvote_fails "ASDFJOFASF", "me", [1, 2, 3]
-  end
-
-  def test_cast_quickvote_nonexistent_candidates
-    test_create_quickvote
-    election = invoke_delegated :vote, :get_quickvote, "TestVote"
-    assert_cast_quickvote_fails "TestVote", 42, [123, 342314, 5342, 1, 1, 2]
-  end
-
-  def test_create_mass_quickvote
-    10.times do |t|
-      assert_create_quickvote_succeeds ElectionStruct.new({
-        :name => "test#{t}",
-        :description => "Test Vote",
-        :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-    end
-  end
-
-  def test_create_quickvote_bad_name
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "invalid space",
-      :description => "Test Vote",
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-
-  end
-
-  def test_create_quickvote_nil
-    assert_create_quickvote_fails ElectionStruct.new()
-  end
-
-  def test_create_quickvote_name_nil
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "",
-      :description => "Test Vote",
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-  end
-
-  def test_create_quickvote_description_nil
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => nil,
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-  end
-  
-  def test_create_quickvote_description_whitespace
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "       ",
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "\t\t",
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-  end
-  
-  def test_create_quickvote_candidates_nil
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "valid",
-      :candidate_names => nil })
-  end
-
-  def test_create_quickvote_insufficient_candidates
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "valid",
-      :candidate_names => ["Apple"] })
-  end
-
-  def test_create_quickvote_candidates_whitespace
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "valid",
-      :candidate_names => [" ", "   ", "       ", "         "]})
-  end
-
-  def test_create_quickvote_dupe_candidates
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "valid",
-      :candidate_names => ["Apple", "Apple", "Apple", "Apple"]})
-
-    # TODO: Previous may pass coincidentally if a uniq! then a sizecheck
-    # reveals too few unique names
-    
-    # We don't want this to happen. Dupe canidates should fail
-    # regardless of how many are left.
-
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "valid",
-      :candidate_names => ["Apple", "Apple", "Orange",
-                           "Orange", "Pineapple" ,  "Pineapple"]})
-  end
-
-  def test_create_quickvote_candidates_nil_mixed
-    assert_create_quickvote_fails ElectionStruct.new({
-      :name => "foobar",
-      :description => "valid",
-      :candidate_names => ["Apple", nil ]})
-    
-  end
-
-  def test_create_quickvote_description_xmlescape
-    # Will an embedded XML element bork the table?
-    assert_create_quickvote_succeeds ElectionStruct.new({
-      :name => "foobar",
-      :description => "test </string>",
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-  end
-
-  def test_create_quickvote_unprintable_description
-    assert_create_quickvote_succeeds ElectionStruct.new ({
-      :name => "foobar",
-      :description => "test \x01\x02\x03\x04\x05\x06\x07\x08",
-      :candidate_names => ["Apple", "Orange", "Banana", "Pineapple"]})
-  end
-
-  def test_quickvote_proper_results
-    assert_create_quickvote_succeeds ElectionStruct.new({
-      :name => "favdev",
-      :description => "Who is your favorite developer?",
-      :candidate_names => ["mako", "jdong", "justin"]})
-
-    reflection = invoke_delegated(:vote, :get_quickvote, "favdev")
-
-    # build the candidate list
-    candidates = {}
-    reflection.candidate_names.each_with_index do |name, index|
-      candidates[name] = reflection.candidate_ids[index]
-    end
-
-    25.times do |t|
-      vote = [candidates["jdong"], candidates["mako"], candidates["justin"]]
-      assert_cast_quickvote_succeeds "favdev", "1:#{t}", [vote]
-    end
-
-    5.times do |t|
-      vote = [candidates["mako"], candidates["justin"], candidates["jdong"]]
-      assert_cast_quickvote_succeeds "favdev", "2:#{t}", [vote]
-    end
-
-    10.times do |t|
-      vote = [candidates["justin"], candidates["mako"], candidates["jdong"]]
-      assert_cast_quickvote_succeeds "favdev", "3:#{t}", [vote]
-    end
-
-    results=nil
-
-    assert_nothing_raised { results = invoke_delegated(:vote, 
-                              :get_quickvote_results, "favdev") }
-    assert_equal results.approval_winners, [candidates["mako"]]
-    assert_equal results.borda_winners, [candidates["jdong"]]
-    assert_equal results.plurality_winners, [candidates["jdong"]]
-    assert_equal results.condorcet_winners, [candidates["jdong"]]
-    assert_equal results.ssd_winners, [candidates["jdong"]]
-  end
-
-  ## helper methods and non-tests used throughout this file
-  #########################################################
-  private
-  def assert_cast_quickvote_succeeds(shortname, id, vote)
-    assert_nothing_raised do
-      old_votes = invoke_delegated(:vote, :get_quickvote_votes, shortname)
-      invoke_delegated(:vote, :cast_quickvote, shortname, id, vote)
-
-      new_votes = invoke_delegated(:vote, :get_quickvote_votes, shortname)
-      assert_equal(old_votes.length, new_votes.length - 1)
-
-      reflection = new_votes.find_all { |v| v.voter_session_id == "XMLRPC:#{id}" }
-      assert_not_nil(reflection)
-      assert_equal(reflection.length, 1)
-      assert_equal(reflection[0].vote, vote[0])
-    end
-  end
-
-  def assert_cast_quickvote_fails(shortname, id, vote)
-    assert_raise Test::Unit::AssertionFailedError do
-      assert_cast_quickvote_succeeds(shortname, id, vote)
-     end
-  end
-
-  def assert_create_quickvote_succeeds(election)
-    # checks if a created quickvote is identical when retrieved
-    assert_nothing_raised do
-      old_len = invoke_delegated(:vote, :list_quickvotes).length
-      result = invoke_delegated(:vote, :create_quickvote, election)
-      assert_equal(result, "")
-
-      reflection = invoke_delegated(:vote, :get_quickvote, election.name)
-      assert_equal(election.description, reflection.description)
-      assert_equal(0, election.name.casecmp(reflection.name))
-      assert_equal(election.candidate_names, reflection.candidate_names)
-      assert_equal(invoke_delegated(:vote, :list_quickvotes).length, old_len+1)
-    end
-  end
-  
-  def assert_create_quickvote_fails(election)
-    assert_raise Test::Unit::AssertionFailedError do
-      assert_create_quickvote_succeeds(election)
-    end
-  end
-end

Benjamin Mako Hill || Want to submit a patch?