Sha256: c6201fe961eb7143927c51fd161784e17d8a525c244002bfb1e34bdb71ea7ba0

Contents?: true

Size: 1.06 KB

Versions: 16

Compression:

Stored size: 1.06 KB

Contents

require "minitest_helper"

module Hermod
  module Validators
    describe TypeChecker do
      it "uses a default block that checks the value is an instance of the given class" do
        checker = TypeChecker.new(Integer)
        checker.valid?(1, {}).must_equal true
        proc { checker.valid?(1.0, {}) }.must_raise InvalidInputError
      end

      it "allows you to give a block to be more discerning" do
        checker = TypeChecker.new(Integer) { |val| val > 0 }
        checker.valid?(5, {}).must_equal true
        proc { checker.valid?(-2, {}) }.must_raise InvalidInputError
      end

      it "ignores blank values" do
        checker = TypeChecker.new(Integer)
        checker.valid?(nil, {}).must_equal true
      end

      it "gives the correct message" do
        ex = proc { TypeChecker.new(Integer).valid?(1.0, {}) }.must_raise InvalidInputError
        ex.message.must_equal "must be an integer"

        ex = proc { TypeChecker.new(Float).valid?(1, {}) }.must_raise InvalidInputError
        ex.message.must_equal "must be a float"
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
hermod-2.6.2 spec/hermod/validators/type_checker_spec.rb
hermod-2.6.1 spec/hermod/validators/type_checker_spec.rb
hermod-2.5.3 spec/hermod/validators/type_checker_spec.rb
hermod-2.5.2 spec/hermod/validators/type_checker_spec.rb
hermod-2.5.1 spec/hermod/validators/type_checker_spec.rb
hermod-2.5.0 spec/hermod/validators/type_checker_spec.rb
hermod-2.4.1 spec/hermod/validators/type_checker_spec.rb
hermod-2.4.0 spec/hermod/validators/type_checker_spec.rb
hermod-2.2.0 spec/hermod/validators/type_checker_spec.rb
hermod-2.1.0 spec/hermod/validators/type_checker_spec.rb
hermod-1.2.9 spec/hermod/validators/type_checker_spec.rb
hermod-1.2.8 spec/hermod/validators/type_checker_spec.rb
hermod-1.2.7 spec/hermod/validators/type_checker_spec.rb
hermod-1.2.6 spec/hermod/validators/type_checker_spec.rb
hermod-1.2.5 spec/hermod/validators/type_checker_spec.rb
hermod-1.2.4 spec/hermod/validators/type_checker_spec.rb