Sha256: f505dd36c4ce7b92f4d7e26d3d8c5a3d6593cbe671d9159317c3f0b34e2a9114

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require_relative '../spec_helper'

describe Rats::Range do
  it "initializes" do
    data = Rats::Range.new
    data.is_a?(Rats::Range).should be_true
  end

  describe "boundaries" do
    it "knows valid data" do
      data = Rats::Range.new(6)
      data.valid?.should be_true
      data.error.should be_nil
    end

    it "knows invalid data" do
      data = Rats::Range.new(31)
      data.valid?.should be_false
      data.error.should == "not allowed"
    end
  end

  describe "read/write" do
    it "returns a padded value" do
      data = Rats::Range.new('4')
      data.to_p.should == '04'
    end

    it "returns the integer" do
      data = Rats::Range.new('4')
      data.v.should == 4
    end

    it "returns a string" do
      data = Rats::Range.new('4')
      data.to_s.should == '4'
    end

    it "writes the fullname" do
      data = Rats::Range.new('4')
      data.fullname.should == 'Range 4'
    end

    describe "transforming" do
      it "accepts integers" do
        Rats::Range.transform(4).should == 4
      end

      it "accepts strings" do
        Rats::Range.transform('4').should == 4
      end

      it "doesn't accept other data" do
        Rats::Range.transform('E4').should be_nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rats-0.5.0 spec/data/range_spec.rb