Sha256: 8c6eb4746f52537c149d69ff7e48ec6013171d9d89f248a85a44155f339b98b2

Contents?: true

Size: 1.68 KB

Versions: 98

Compression:

Stored size: 1.68 KB

Contents

require File.join(File.dirname(__FILE__), "..", "spec_helper")

describe SafeYAML::Transform::ToInteger do
  it "returns true when the value matches a valid Integer" do
    subject.transform?("10").should == [true, 10]
  end

  it "returns false when the value does not match a valid Integer" do
    subject.transform?("foobar").should be_false
  end

  it "returns false when the value spans multiple lines" do
    subject.transform?("10\nNOT AN INTEGER").should be_false
  end

  it "allows commas in the number" do
    subject.transform?("1,000").should == [true, 1000]
  end

  it "correctly parses numbers in octal format" do
    subject.transform?("010").should == [true, 8]
  end

  it "correctly parses numbers in hexadecimal format" do
    subject.transform?("0x1FF").should == [true, 511]
  end

  it "defaults to a string for a number that resembles octal format but is not" do
    subject.transform?("09").should be_false
  end

  it "correctly parses 0 in decimal" do
    subject.transform?("0").should == [true, 0]
  end

  it "defaults to a string for a number that resembles hexadecimal format but is not" do
    subject.transform?("0x1G").should be_false
  end

  it "correctly parses all formats in the YAML spec" do
    # canonical
    subject.transform?("685230").should == [true, 685230]

    # decimal
    subject.transform?("+685_230").should == [true, 685230]

    # octal
    subject.transform?("02472256").should == [true, 685230]

    # hexadecimal:
    subject.transform?("0x_0A_74_AE").should == [true, 685230]

    # binary
    subject.transform?("0b1010_0111_0100_1010_1110").should == [true, 685230]

    # sexagesimal
    subject.transform?("190:20:30").should == [true, 685230]
  end
end

Version data entries

98 entries across 98 versions & 3 rubygems

Version Path
puppet-retrospec-0.12.2 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.7 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.7-x86-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.7-x64-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.6 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.6-x86-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.12.1 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.6-x64-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.12.0 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.5 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.5-x86-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.5-x64-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.4 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.4-x86-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-3.8.4-x64-mingw32 lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.11.0 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.10.0 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.9.1 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.9.0 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb
puppet-retrospec-0.8.1 vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb