Sha256: d547f14040ab7e8d4acc4d3aa5503f325f96d2a0a49dd247682f450b7c38da27

Contents?: true

Size: 1.7 KB

Versions: 5

Compression:

Stored size: 1.7 KB

Contents

require 'spec_helper'

describe "Mutations::BooleanFilter" do

  it "allows booleans" do
    f = Mutations::BooleanFilter.new
    filtered, errors = f.filter(true)
    assert_equal true, filtered
    assert_equal nil, errors

    filtered, errors = f.filter(false)
    assert_equal false, filtered
    assert_equal nil, errors
  end

  it "considers non-booleans to be invalid" do
    f = Mutations::BooleanFilter.new
    [[true], {:a => "1"}, Object.new].each do |thing|
      _filtered, errors = f.filter(thing)
      assert_equal :boolean, errors
    end
  end

  it "considers nil to be invalid" do
    f = Mutations::BooleanFilter.new(:nils => false)
    filtered, errors = f.filter(nil)
    assert_equal nil, filtered
    assert_equal :nils, errors
  end

  it "considers nil to be valid" do
    f = Mutations::BooleanFilter.new(:nils => true)
    filtered, errors = f.filter(nil)
    assert_equal nil, filtered
    assert_equal nil, errors
  end

  it "considers certain strings to be valid booleans" do
    f = Mutations::BooleanFilter.new
    [["true", true], ["TRUE", true], ["TrUe", true], ["1", true], ["false", false], ["FALSE", false], ["FalSe", false], ["0", false], [0, false], [1, true]].each do |(str, v)|
      filtered, errors = f.filter(str)
      assert_equal v, filtered
      assert_equal nil, errors
    end
  end
  
  it "considers empty strings to be empty" do
    f = Mutations::BooleanFilter.new
    _filtered, errors = f.filter("")
    assert_equal :empty, errors
  end

  it "considers other string to be invalid" do
    f = Mutations::BooleanFilter.new
    ["truely", "2"].each do |str|
      filtered, errors = f.filter(str)
      assert_equal str, filtered
      assert_equal :boolean, errors
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mutations-0.9.1 spec/boolean_filter_spec.rb
mutations-0.9.0 spec/boolean_filter_spec.rb
mutations-0.8.3 spec/boolean_filter_spec.rb
mutations-0.8.2 spec/boolean_filter_spec.rb
mutations-0.8.1 spec/boolean_filter_spec.rb