Sha256: 7e1c052510b668deb7abf5eb8147b679fb4cac7b41b8dd0804666f06e45ad6a4

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

RSpec.describe Celluloid::Internals::Properties do
  let(:default_value) { 42 }
  let(:changed_value) { 43 }

  let(:example_class) do
    Class.new do
      extend Celluloid::Internals::Properties
      property :baz, default: 42
    end
  end

  let(:example_subclass) do
    Class.new(example_class)
  end

  let(:example_subclass_subclass) do
    Class.new(example_subclass)
  end

  it "adds properties to classes" do
    expect(example_class.baz).to eq default_value
    example_class.baz changed_value
    expect(example_class.baz).to eq changed_value
  end

  it "allows properties to be inherited" do
    expect(example_subclass.baz).to eq default_value
    example_subclass.baz changed_value
    expect(example_subclass.baz).to eq changed_value
    expect(example_class.baz).to eq default_value
  end

  it "allows properties to be deeply inherited" do
    expect(example_subclass_subclass.baz).to eq default_value
    example_subclass_subclass.baz changed_value
    expect(example_subclass_subclass.baz).to eq changed_value
    expect(example_subclass.baz).to eq default_value
    expect(example_class.baz).to eq default_value
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
celluloid-0.18.0 spec/celluloid/internals/properties_spec.rb
celluloid-0.18.0.pre2 spec/celluloid/internals/properties_spec.rb