Sha256: 5548b6f224413cd3db144ca93ba2791db1bdef7a71fd17393f6cf697ea806b41

Contents?: true

Size: 1.9 KB

Versions: 224

Compression:

Stored size: 1.9 KB

Contents

$:.unshift File.dirname(__FILE__)+"/../lib"

require 'test/unit'
require 'rgen/ecore/ecore'
require 'rgen/model_builder/builder_context'

class BuilderContextTest < Test::Unit::TestCase
  
  module BuilderExtension1
    module PackageA
      def inPackAExt
        3
      end
      module PackageB
        def inPackBExt
          5  
        end
      end
    end
  end
  
  class BuilderContext
    def inBuilderContext
      7
    end
  end
  
  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
end

Version data entries

224 entries across 224 versions & 3 rubygems

Version Path
puppet-4.10.12 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.12-x86-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.12-x64-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.12-universal-darwin lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.11 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.11-x86-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.11-x64-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.11-universal-darwin lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.10 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.10-x86-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.10-x64-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.10-universal-darwin lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.9 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.9-x86-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.9-x64-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.9-universal-darwin lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-retrospec-1.5.0 vendor/gems/puppet-4.5.2/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.8 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.8-x86-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb
puppet-4.10.8-x64-mingw32 lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb