require 'unit_spec_helper'

describe Shoulda::Matchers::ActionController::RouteParams, type: :controller do
  describe "#normalize" do
    context "when the route parameters is a hash" do
      it "stringifies the values in the hash" do
        expect(build_route_params(controller: :examples, action: 'example', id: '1').normalize).
          to eq({ controller: "examples", action: "example", id: "1" })
      end
    end

    context "when the route parameters is a string and a hash" do
      it "produces a hash of route parameters" do
        expect(build_route_params("examples#example", id: '1').normalize).
          to eq({ controller: "examples", action: "example", id: "1" })
      end
    end

    context "when the route params is a string" do
      it "produces a hash of route params" do
        expect(build_route_params("examples#index").normalize).
          to eq({ controller: "examples", action: "index"})
      end
    end
  end

  def build_route_params(*params)
    Shoulda::Matchers::ActionController::RouteParams.new(params)
  end
end
