Sha256: 90f08b3b16f7952ed1b88e44dc78b40d366502e4c1666781c8c774971fb76189
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
# coding: utf-8 require 'minitest/autorun' class TestConfig < MiniTest::Unit::TestCase def definition @definition ||= Confuse.define do |conf| conf.add_item :foo conf.add_item :bar, :default => 'default' conf.add_item :baz, :required => true end end def source @source ||= Class.new do def [](namespace, key) 'foo' if key == :foo end end.new end def setup @config = Confuse::Config.new(definition, source) end # gets a value from the source if it is defined, and in the source def test_get_value_from_source assert_equal 'foo', @config.foo end # returns the default value if the source returns nil def test_get_default_from_definition assert_equal 'default', @config.bar end # raises undefined if an item hasn't been set, and has no default def test_get_default_from_definition assert_raises(Confuse::Errors::Undefined) { @config.buz } end # raises an error if any items are required and don't have defaults def test_check assert_raises(Confuse::Errors::Undefined) { @config.check } end def test_to_hash config = Confuse.config do |conf| conf.add_item :foo, :description => 'foo', :default => 1 conf.add_namespace :bar do |ns| ns.add_item :baz, :description => 'bar_baz', :default => 2 end end assert_equal( { :foo => { :description => 'foo', :default => 1, :value => 1 }, :bar_baz => { :description => 'bar_baz', :default => 2, :value => 2 } }, config.to_hash) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
confuse-1.1.1 | test/test_config.rb |
confuse-1.1.0 | test/test_config.rb |