Sha256: 76fb5ca2827a8ebf599beb6872a8d5b0a3ab098e4bfc6458d4db6b97643e3a95
Contents?: true
Size: 1.96 KB
Versions: 22
Compression:
Stored size: 1.96 KB
Contents
require 'spec_helper' module Apipie::Validator describe ArrayValidator do let(:param_desc) { double(:param_desc) } context "with no constraint" do let(:validator) { ArrayValidator.new(param_desc, Array) } it "accepts any array" do expect(validator.validate([42, 'string', true])).to eq(true) end it "accepts empty array" do expect(validator.validate([])).to eq(true) expect(validator.validate(nil)).to eq(true) end it "does not accepts non array" do expect(validator.validate(42)).to eq(false) expect(validator.validate(true)).to eq(false) expect(validator.validate('string')).to eq(false) end end context "with a constraint on items type" do let(:validator) { ArrayValidator.new(param_desc, Array, :of => String) } it "accepts array of specified type" do expect(validator.validate(['string1', 'string2'])).to eq(true) end it "accepts empty array" do expect(validator.validate([])).to eq(true) end it "does not accepts array with other types" do expect(validator.validate(['string1', true])).to eq(false) end end context "with a constraint on items value" do let(:validator) { ArrayValidator.new(param_desc, Array, :in => [42, 'string', true]) } it "accepts array of valid values" do expect(validator.validate([42, 'string'])).to eq(true) end it "accepts empty array" do expect(validator.validate([])).to eq(true) end it "does not accepts array with invalid values" do expect(validator.validate([42, 'string', 'foo'])).to eq(false) end it "accepts a proc as list of valid values" do validator = ArrayValidator.new(param_desc, Array, :in => lambda { [42, 'string', true] }) expect(validator.validate([42, 'string'])).to eq(true) expect(validator.validate([42, 'string', 'foo'])).to eq(false) end end end end
Version data entries
22 entries across 22 versions & 1 rubygems