Sha256: 10ff47c9b1ce3e48cf1962c919144f16112379d7c5df6e4d4cf26df570086dab

Contents?: true

Size: 1.61 KB

Versions: 37

Compression:

Stored size: 1.61 KB

Contents

require 'spec_helper'

describe TogoStanza::Stanza::Base do
  describe '.property' do
    let(:klass) { Class.new(TogoStanza::Stanza::Base) }

    specify 'raise error when specify a value and block' do
      expect {
        klass.property :foo, 'bar' do
          'baz'
        end
      }.to raise_error(ArgumentError)
    end

    specify 'raise error when neither specify a value nor block' do
      expect {
        klass.property :foo
      }.to raise_error(ArgumentError)
    end

    specify 'allow specify a falsy value' do
      klass.property :foo, false

      klass.properties[:foo].should == false
    end
  end

  describe '#context' do
    let :klass do
      Class.new(TogoStanza::Stanza::Base) {
        property :foo do
          'foo'
        end

        property :bar do |bar|
          bar * 3
        end

        property :baz do
          {
            qux: 'quux'
          }
        end

        property :foobar, 'foobar'

        resource :do_not_evaluate do
          raise
        end
      }
    end

    subject { klass.new(bar: 'bar').context }

    its(:foo)    { should == 'foo' }
    its(:bar)    { should == 'barbarbar' }
    its(:baz)    { should == {'qux' => 'quux'} }
    its(:foobar) { should == 'foobar' }
  end

  describe '#resource' do
    let :klass do
      Class.new(TogoStanza::Stanza::Base) {
        resource :foo do
          'foo'
        end

        resource :bar do |bar|
          bar * 3
        end
      }
    end

    let(:stanza) { klass.new(bar: 'bar') }

    specify { stanza.resource(:foo).should == 'foo' }
    specify { stanza.resource(:bar).should == 'barbarbar' }
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
togostanza-2.2.2 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.2.1 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.2.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.1.3 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.1.2 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.1.1 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.1.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-2.0.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.5.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.4.1 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.4.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.3.3 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.3.2 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.3.1 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.3.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.2.2 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.2.1 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.2.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.1.0 spec/lib/togostanza/stanza/base_spec.rb
togostanza-1.0.6 spec/lib/togostanza/stanza/base_spec.rb