Sha256: a4f364e740c1f289d399adf39a54fcc706d122cdbcf31c01fe7f862e764b622e

Contents?: true

Size: 652 Bytes

Versions: 7

Compression:

Stored size: 652 Bytes

Contents

require 'spec_helper'

require 'hamster/immutable'

describe Hamster::Immutable do

  describe "#transform" do

    class TransformPerson < Struct.new(:first, :last)
      include Hamster::Immutable
      public :transform
    end

    before do
      @original = TransformPerson.new("Simon", "Harris")
      @result = @original.transform { self.first = "Sampy" }
    end

    it "preserves the original" do
      @original.first.should == "Simon"
      @original.last.should == "Harris"
    end

    it "returns a new instance with the updated values" do
      @result.first.should == "Sampy"
      @result.last.should == "Harris"
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
hamster-0.4.3 spec/hamster/immutable/transform_spec.rb
hamster-0.4.2 spec/hamster/immutable/transform_spec.rb
hamster-0.4.0 spec/hamster/immutable/transform_spec.rb
hamster-0.3.10 spec/hamster/immutable/transform_spec.rb
hamster-0.3.9 spec/hamster/immutable/transform_spec.rb
hamster-0.3.8 spec/hamster/immutable/transform_spec.rb
hamster-0.3.7 spec/hamster/immutable/transform_spec.rb