Sha256: f523f4c28fc350e03a046f26f020bdd843aa822112cbc858091d0375275b18ea

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require 'spec_helper'

shared_examples_for 'a nested element' do

  # clazz must be defined by the calling file

  before(:each) do
    @nested_element = clazz.new
  end

  it 'has a parent element - #parent_element' do
    @nested_element.should respond_to(:parent_element)
  end

  it 'can get and set its parent element - #parent_element, #parent_element=' do
    @nested_element.parent_element = :some_parent_element
    @nested_element.parent_element.should == :some_parent_element
    @nested_element.parent_element = :some_other_parent_element
    @nested_element.parent_element.should == :some_other_parent_element
  end

  it 'starts with no parent element' do
    @nested_element.parent_element.should == nil
  end

  it 'has access to its ancestors' do
    @nested_element.should respond_to(:get_ancestor)
  end

  it 'gets an ancestor based on type' do
    (clazz.instance_method(:get_ancestor).arity == 1).should be_true
  end

  it 'raises and exception if an unknown ancestor type is requested' do
    expect { @nested_element.get_ancestor(:bad_ancestor_type) }.to raise_exception(ArgumentError)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cuke_modeler-0.3.0 spec/unit/nested_element_unit_specs.rb