Sha256: e44b4d5949a0d5f3f81f0bbd314827eb37e8f648867cc2b30a373619019890d1

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

require_relative '../spec_helper'

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

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

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

    it "raises error with invalid data" do
      data = Rats::Meridian.new
      data.raise_errors!
      lambda { data.value = 3 }.should raise_error(ArgumentError)
    end
  end

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

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

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

    it "writes just the integer" do
      data = Rats::Meridian.new('W4')
      data.v.should == 4
    end

    it "writes the fullname" do
      data = Rats::Meridian.new('W4')
      data.fullname.should == 'West of the Fourth Meridian'
    end

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

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

      it "accepts string prepended W" do
        Rats::Meridian.transform('W4').should == 4
      end

      it "accepts string prepended w" do
        Rats::Meridian.transform('w4').should == 4
      end

      it "doesn't accept other data" do
        Rats::Meridian.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/meridian_spec.rb