Server IP : 111.118.215.189 / Your IP : 3.23.101.44 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/ruby/vendor_ruby/puppet/vendor/rgen/test/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
$:.unshift File.join(File.dirname(__FILE__),"..","lib") require 'test/unit' require 'rgen/environment' require 'rgen/metamodel_builder' class EnvironmentTest < Test::Unit::TestCase class Model attr_accessor :name end class ModelSub < Model end class ClassSuperA < RGen::MetamodelBuilder::MMBase end class ClassSuperB < RGen::MetamodelBuilder::MMBase end class ClassC < RGen::MetamodelBuilder::MMMultiple(ClassSuperA, ClassSuperB) has_attr 'name', String end class ClassSubD < ClassC end class ClassSubE < ClassC end def test_find_mmbase env = RGen::Environment.new mA1 = env.new(ClassSuperA) mB1 = env.new(ClassSuperB) mD1 = env.new(ClassSubD, :name => "mD1") mD2 = env.new(ClassSubD, :name => "mD2") mE = env.new(ClassSubE, :name => "mE") resultA = env.find(:class => ClassSuperA) assert_equal sortById([mA1,mD1,mD2,mE]), sortById(resultA) resultNamedA = env.find(:class => ClassSuperA, :name => "mD1") assert_equal sortById([mD1]), sortById(resultNamedA) resultB = env.find(:class => ClassSuperB) assert_equal sortById([mB1,mD1,mD2,mE]), sortById(resultB) resultNamedB = env.find(:class => ClassSuperB, :name => "mD1") assert_equal sortById([mD1]), sortById(resultNamedB) resultC = env.find(:class => ClassC) assert_equal sortById([mD1,mD2,mE]), sortById(resultC) resultD = env.find(:class => ClassSubD) assert_equal sortById([mD1,mD2]), sortById(resultD) end def test_find m1 = Model.new m1.name = "M1" m2 = ModelSub.new m2.name = "M2" m3 = "justAString" env = RGen::Environment.new << m1 << m2 << m3 result = env.find(:class => Model, :name => "M1") assert result.is_a?(Array) assert_equal 1, result.size assert_equal m1, result.first result = env.find(:class => Model) assert result.is_a?(Array) assert_equal sortById([m1,m2]), sortById(result) result = env.find(:name => "M2") assert result.is_a?(Array) assert_equal 1, result.size assert_equal m2, result.first result = env.find(:class => [Model, String]) assert result.is_a?(Array) assert_equal sortById([m1,m2,m3]), sortById(result) end private def sortById(array) array.sort{|a,b| a.object_id <=> b.object_id} end end