Sha256: 53a3db01aa9c3066d1120e77ed63c804d8691488dbf2db7babbadb59790a9887

Contents?: true

Size: 1.8 KB

Versions: 5

Compression:

Stored size: 1.8 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)
        expect(validator.expected_type).to eq('hash')
      end

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

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

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

    end

    describe 'NumberValidator' do
      it 'should expect a Numeric type' do
        validator = Apipie::Validator::BaseValidator.find(params_desc, :number, nil, nil)
        expect(validator.expected_type).to eq('numeric')
      end
    end
  end

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
apipie-rails-0.5.13 spec/lib/validator_spec.rb
apipie-rails-0.5.12 spec/lib/validator_spec.rb
apipie-rails-0.5.11 spec/lib/validator_spec.rb
apipie-rails-0.5.10 spec/lib/validator_spec.rb
apipie-rails-0.5.9 spec/lib/validator_spec.rb