Sha256: a3c0d8d2b5a56be26c6ae61ebedcf8abfe0dfbf459ffa17b580e472a66020f3c

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

require File.dirname(__FILE__) + '/../spec_helper.rb'
require File.dirname(__FILE__) + '/../spec_example_classes'
require 'aquarium'

# Some of AdviceChainNode and related classes are tested through advice_spec.rb. We rely on rcov to
# tell us otherwise...
describe Aquarium::Aspects::AdviceChainNode, "#each" do
  it "should return each node in succession" do
    static_join_point = :static_join_point
    advice = lambda {|jp, *args| p "none advice"}
    options = {
      :advice_kind => :none, 
      :advice => advice,
      :next_node => nil,
      :static_join_point => static_join_point}    
    advice_chain = Aquarium::Aspects::AdviceChainNodeFactory.make_node options

    Aquarium::Aspects::Advice.kinds_in_priority_order.each do |advice_kind|
      advice = lambda {|jp, *args| p "#{advice_kind} advice"}
      options[:advice_kind] = advice_kind
      options[:advice]      = advice,
      options[:next_node]   = advice_chain
      advice_chain = Aquarium::Aspects::AdviceChainNodeFactory.make_node options
    end
    
    advice_chain.size.should == 6
    expected_advice_kinds = Aquarium::Aspects::Advice.kinds_in_priority_order.reverse + [:none]
    count = 0
    advice_chain.each do |node|
      node.advice_kind.should == expected_advice_kinds[count]
      count += 1
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
aquarium-0.1.6 spec/aquarium/aspects/advice_chain_node_spec.rb
aquarium-0.1.0 spec/aquarium/aspects/advice_chain_node_spec.rb
aquarium-0.1.5 spec/aquarium/aspects/advice_chain_node_spec.rb
aquarium-0.1.7 spec/aquarium/aspects/advice_chain_node_spec.rb