Sha256: ec4101b0842265f8bff0a58eb9d24af23afd0d21da522e3a2d4e139b435d8df8

Contents?: true

Size: 1.53 KB

Versions: 17

Compression:

Stored size: 1.53 KB

Contents

require "spec_helper"

describe Apipie::Validator do

  let(:dsl_data) { ActionController::Base.send(:_apipie_dsl_data_init) }

  let(:resource_desc) do
    Apipie::ResourceDescription.new(UsersController, "users")
  end

  let(:method_desc) do
    Apipie::MethodDescription.new(:show, resource_desc, dsl_data)
  end

  let(:params_desc) do
    Apipie::ParamDescription.new(method_desc, :param, nil)
  end

  describe 'TypeValidator' do

    context "expected type" do

      it "should return hash for type Hash" do
        validator = Apipie::Validator::TypeValidator.new(params_desc, Hash)
        validator.expected_type.should == 'hash'
      end

      it "should return array for type Array" do
        validator = Apipie::Validator::TypeValidator.new(params_desc, Array)
        validator.expected_type.should == 'array'
      end

      it "should return numeric for type Numeric" do
        validator = Apipie::Validator::TypeValidator.new(params_desc, Numeric)
        validator.expected_type.should == 'numeric'
      end

      it "should return string by default" do
        validator = Apipie::Validator::TypeValidator.new(params_desc, Symbol)
        validator.expected_type.should == 'string'
      end

    end

  end

  describe 'ArrayClassValidator' do
    it "should validate by object class" do
      validator = Apipie::Validator::ArrayClassValidator.new(params_desc, [Fixnum, String])
      validator.validate("1").should be_true
      validator.validate(1).should be_true
      validator.validate({ 1 => 1 }).should be_false
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
apipie-rails-0.3.5 spec/lib/validator_spec.rb
apipie-rails-0.3.4 spec/lib/validator_spec.rb
apipie-rails-0.3.3 spec/lib/validator_spec.rb
apipie-rails-0.3.2 spec/lib/validator_spec.rb
apipie-rails-0.3.1 spec/lib/validator_spec.rb
apipie-rails-0.3.0 spec/lib/validator_spec.rb
apipie-rails-0.2.6 spec/lib/validator_spec.rb
apipie-rails-0.2.5 spec/lib/validator_spec.rb
apipie-rails-0.2.4 spec/lib/validator_spec.rb
apipie-rails-0.2.3 spec/lib/validator_spec.rb
apipie-rails-0.2.2 spec/lib/validator_spec.rb
apipie-rails-0.2.1 spec/lib/validator_spec.rb
apipie-rails-0.2.0 spec/lib/validator_spec.rb
apipie-rails-0.1.3 spec/lib/validator_spec.rb
apipie-rails-0.1.2 spec/lib/validator_spec.rb
apipie-rails-0.1.1 spec/lib/validator_spec.rb
apipie-rails-0.1.0 spec/lib/validator_spec.rb