Sha256: 840d968702f849bf02eee7f8bb140eecfc2657729ea387c91dc2c530123acdb8

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

#Thanks to Ted Milken for updating the original example
require 'test/unit'
require_relative '../test_helper'

class Person
  attr_accessor :name
  attr_accessor :greeting
end

class GreeterTest < Test::Unit::TestCase
  def test_greet
    Context.generate_dependency_graph = true
    Context.generate_code = true
    ctx = Context.define :Greet_Someone do
      role :greeter do
        def welcome
          greeter.greeting
        end
      end

      role :greeted do
      end

      def greet
        greeter.name.to_s + ': ' + greeter.welcome.to_s + ' ' + greeted.name.to_s + '!'
      end

      def initialize(greeter, greeted)
        @greeter = greeter
        @greeted = greeted
      end
    end

    p1 = Person.new
    p1.name = 'Bob'
    p1.greeting = 'Hello'

    p2 = Person.new
    p2.name = 'World'
    p2.greeting = 'Greetings'

    res = Greet_Someone.new(p1, p2).greet
    assert_equal("Bob: Hello World!",res)
    puts ""
    p ctx.dependencies.to_dot
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
maroon-0.8.0 Test/Examples/greeter_test.rb