scottwillson/racing_on_rails

View on GitHub
test_ruby/models/categories/equipment_test.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require_relative "../../test_case"
require_relative "../../../app/models/categories/equipment"

module Categories
  # :stopdoc:
  class EquipmentTest < Ruby::TestCase
    class Stub
      def self.before_save(_); end
      include Equipment
      attr_accessor :name
    end

    def test_set_equipment_from_name
      {
        "Beginner Men" => nil,
        "Clydesdale" => nil,
        "Athena" => nil,
        "Tandem" => "Tandem",
        "Eddy" => "Eddy",
        "Fat Bike" => "Fat Bike",
        "Fixed Gear" => "Singlespeed/Fixed",
        "Fix Gear Men" => "Singlespeed/Fixed",
        "Fix Gear Women" => "Singlespeed/Fixed",
        "Merckx" => "Merckx",
        "Singlespeed" => "Singlespeed/Fixed",
        "Singlespeed/Fixed" => "Singlespeed/Fixed",
        "Stampede" => "Stampede",
        "Unicycle" => "Unicycle"
      }.each do |name, equipment|
        category = Stub.new
        category.name = name

        # Grr.
        if equipment
          assert_equal equipment, category.equipment_from_name, name
        else
          assert_nil category.equipment_from_name, name
        end
      end
    end
  end
end