Sha256: 6d035a8191ec0bb39ca3f8a286ea0df9b7c34506c830a7c5e58945c8144c9296

Contents?: true

Size: 970 Bytes

Versions: 4

Compression:

Stored size: 970 Bytes

Contents

# Test for facets/advice.rb

require 'test/unit'
require 'facets/advice'

class TestAdvice < Test::Unit::TestCase

  class X
    extend Advisable

    attr_reader :out

    def initialize
      @out = []
    end

    before :x do
      @out << "BEFORE X#x"
    end

    after :x do
      @out << "AFTER X#x"
    end

    def x
      @out << "X#x"
      "x"
    end
  end

  class Y < X
    before :x do
      @out << "BEFORE Y#x"
    end

    after :x do
      @out << "AFTER Y#x"
    end

    around :x do |target|
      "{" + target.call + "}"
    end

    def x
      @out << "Y#x"
      super
    end
  end

  # tests

  def setup
    @x = X.new
    @y = Y.new
  end

  def test_x
    r = @x.x
    o = @x.out
    assert_equal("x", r)
    assert_equal(["BEFORE X#x", "X#x", "AFTER X#x"], o)
  end

  def test_y
    r = @y.x
    o = @y.out
    assert_equal("{x}", r)
    assert_equal(["BEFORE Y#x", "BEFORE X#x", "Y#x", "X#x", "AFTER X#x", "AFTER Y#x"], o)
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
facets-2.3.0 test/more/test_advice.rb
facets-2.1.3 test/unit/test_advice.rb
facets-2.2.0 test/unit/test_advice.rb
facets-2.2.1 test/unit/test_advice.rb