Sha256: 79e36fbe6fdb8b2f3f6c0e97297bbb49e1fa1b7173cb21463035ebb7db89f6a2

Contents?: true

Size: 1.24 KB

Versions: 11

Compression:

Stored size: 1.24 KB

Contents

#
# This file is part of the lazier gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
#

require "spec_helper"

describe Lazier::Configuration do
  class ConfigurationSpecSample < ::Lazier::Configuration
    property :readwrite, default: "1"
    property :required, required: true
    property :readonly, default: "2", readonly: true
  end

  describe "#property" do
    it "should correctly define property and get it defaults" do
      expect(ConfigurationSpecSample.new(required: 1).readwrite).to eq("1")
      expect(ConfigurationSpecSample.new(required: 1, readwrite: "3").readwrite).to eq("3")
      expect(ConfigurationSpecSample.new(required: 1).readonly).to eq("2")
      expect(ConfigurationSpecSample.new(required: 1, readonly: "4").readonly).to eq("4")
    end

    it "should not allow writing readonly properties" do
      subject = ConfigurationSpecSample.new(required: 1)
      expect { subject.readonly = "4" }.to raise_error(ArgumentError)
      expect(subject.readonly).to eq("2")
    end

    it "should blow up for required properties" do
      expect { ConfigurationSpecSample.new }.to raise_error(ArgumentError)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
lazier-4.2.2 spec/lazier/configuration_spec.rb
lazier-4.2.1 spec/lazier/configuration_spec.rb
lazier-4.2.0 spec/lazier/configuration_spec.rb
lazier-4.1.0 spec/lazier/configuration_spec.rb
lazier-4.0.6 spec/lazier/configuration_spec.rb
lazier-4.0.5 spec/lazier/configuration_spec.rb
lazier-4.0.4 spec/lazier/configuration_spec.rb
lazier-4.0.3 spec/lazier/configuration_spec.rb
lazier-4.0.2 spec/lazier/configuration_spec.rb
lazier-4.0.1 spec/lazier/configuration_spec.rb
lazier-4.0.0 spec/lazier/configuration_spec.rb