Sha256: b5a7f460eb8b9b03fcbba739c62fd43f9b66774844fa6922b7e8c99a3213d141

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

#! /usr/bin/env ruby
# vim:sw=2:ai

# code: 
# * Thomas Quas  <tquas@yahoo.com>
# * George Moschovitis  <gm@navel.gr>
#
# $Id$

$LOAD_PATH.unshift 'lib'

require "test/unit"
require 'glue/property'

module Mixin
  prop_accessor :date
end

class MixedOnly
  include Mixin
end

class MixedWithProp
  include Mixin

  prop_accessor :dummy
end

class Pure
  prop_accessor :dummy
end

class Empty
end


# Tests auto management.
class TC_MixinsTest < ::Test::Unit::TestCase
  def test_the_unmanaged
    assert( Empty.respond_to?( :__props ) == false )
    assert_respond_to( Pure.new, :dummy )
  end

  def test_manage_entities
    assert_respond_to( Pure, :__props )
    assert_respond_to( Pure.new, :dummy )
  end

  def test_managing_mixedonly_classes
    assert_respond_to( MixedOnly.new, :date )
  end

  def test_managing_mixins
    assert_respond_to( Mixin, :__props )
  end

  def test_managing_mixed_classes
    obj = MixedWithProp.new
    assert( obj.respond_to?( :date ) )
    assert( obj.respond_to?( :dummy ) )
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nitro-0.7.0 test/glue/tc_property_mixins.rb