class BuilderContextTest

Public Instance Methods

test_extensionContainerFactory() click to toggle source
# File lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb, line 28
def test_extensionContainerFactory
  aboveRoot = RGen::ECore::EPackage.new(:name => "AboveRoot")
  root = RGen::ECore::EPackage.new(:name => "Root", :eSuperPackage => aboveRoot)
  packageA = RGen::ECore::EPackage.new(:name => "PackageA", :eSuperPackage => root)
  packageB = RGen::ECore::EPackage.new(:name => "PackageB", :eSuperPackage => packageA)
  packageC = RGen::ECore::EPackage.new(:name => "PackageBC", :eSuperPackage => packageA)
  
  factory = RGen::ModelBuilder::BuilderContext::ExtensionContainerFactory.new(root, BuilderExtension1, BuilderContext.new)
  
  assert_equal BuilderExtension1::PackageA, factory.moduleForPackage(packageA)
  
  packAExt = factory.extensionContainer(packageA)
  assert packAExt.respond_to?(:inPackAExt)
  assert !packAExt.respond_to?(:inPackBExt)
  assert_equal 3, packAExt.inPackAExt
  assert_equal 7, packAExt.inBuilderContext
  
  assert_equal BuilderExtension1::PackageA::PackageB, factory.moduleForPackage(packageB)
  
  packBExt = factory.extensionContainer(packageB)
  assert !packBExt.respond_to?(:inPackAExt)
  assert packBExt.respond_to?(:inPackBExt)
  assert_equal 5, packBExt.inPackBExt
  assert_equal 7, packBExt.inBuilderContext
  
  assert_raise RuntimeError do
    # aboveRoot is not contained within root

    assert_nil factory.moduleForPackage(aboveRoot)
  end
  assert_nil factory.moduleForPackage(packageC)
end