Sha256: c00bbc6d8c355c715f133cf6f8b653df02d687871d2fdc6c38d44863430ce316

Contents?: true

Size: 1.21 KB

Versions: 4

Compression:

Stored size: 1.21 KB

Contents

require 'spec_helper'

describe Compositor::Map do
  let(:context) { Object.new }

  it 'returns the generated map' do
    expected = {
      tests: {
        num1: {number: 1},
        num2: {number: 2},
        num3: {number: 3}
      }
    }

    dsl = Compositor::DSL.create(context)
    dsl.map root: :tests do
      dsl.dsl_int 1, root: :num1
      dsl.dsl_int 2, root: :num2
      dsl.dsl_int 3, root: :num3
    end

    expected.should == dsl.to_hash
  end

  it 'returns the generated deeply nested map without explicit receiver' do
    expected = {
      tests: {
        num1: {number: 1},
        num2: {number: 2},
        num3: {number: 3},
        stuff: [
          {number: 10},
          {number: 11}
        ]
      }
    }

    dsl = Compositor::DSL.create(context)
    dsl.map root: :tests do
      dsl_int 1, root: :num1
      dsl_int 2, root: :num2
      dsl_int 3, root: :num3
      list :root => :stuff do
        dsl_int 10
        dsl_int 11
      end
    end

    expected.should == dsl.to_hash
  end

  describe '#empty' do
    it 'returns the default type' do
      dsl = Compositor::DSL.create(context) do
        map collection: [], root: false
      end

      {}.should == dsl.to_hash
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
compositor-1.0.1 spec/compositor/hash_spec.rb
compositor-1.0.0 spec/compositor/hash_spec.rb
compositor-0.1.4 spec/compositor/hash_spec.rb
compositor-0.1.3 spec/compositor/hash_spec.rb