Sha256: e22aa9570f1ee4cb695035a96321f8042e12f6224cd01ce253179daf36a1a11a

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

# encoding: utf-8
#
# This file is part of the lazier gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
# 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
      reference = ConfigurationSpecSample.new(required: 1)

      expect { reference.readonly = "4" }.to raise_error(ArgumentError)
      expect(reference.readonly).to eq("2")
    end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lazier-3.3.5 spec/lazier/configuration_spec.rb