Sha256: 119f1a16c0364aa70635bde49b541280676c5b8aec6d5b3a986c04d41d3a8875

Contents?: true

Size: 1.36 KB

Versions: 9

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require 'gir_ffi_test_helper'

describe GirFFI::Builders::ModuleBuilder do
  let(:gir) { GObjectIntrospection::IRepository.default }

  describe '#find_namespaced_class_info' do
    it 'finds the info in the GIR' do
      allow(gir).to receive(:require).with('Foo', nil)

      builder = GirFFI::Builders::ModuleBuilder.new 'Foo'

      expect(gir).to receive(:find_by_name).with('Foo', 'Bar').and_return 'gir info'

      builder.find_namespaced_class_info(:Bar).must_equal 'gir info'
    end

    it 'checks downcased class name as an alternative' do
      allow(gir).to receive(:require).with('Foo', nil)

      builder = GirFFI::Builders::ModuleBuilder.new 'Foo'

      expect(gir).to receive(:find_by_name).with('Foo', 'Bar').and_return nil
      expect(gir).to receive(:find_by_name).with('Foo', 'bar').and_return 'gir info'

      builder.find_namespaced_class_info(:Bar).must_equal 'gir info'
    end

    it 'raises a clear error if the named class does not exist' do
      allow(gir).to receive(:require).with('Foo', nil)

      builder = GirFFI::Builders::ModuleBuilder.new 'Foo'

      expect(gir).to receive(:find_by_name).with('Foo', 'Bar').and_return nil
      expect(gir).to receive(:find_by_name).with('Foo', 'bar').and_return nil

      assert_raises NameError do
        builder.find_namespaced_class_info :Bar
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gir_ffi-0.14.1 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.14.0 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.13.1 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.13.0 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.12.1 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.12.0 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.11.4 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.11.3 test/gir_ffi/builders/module_builder_test.rb
gir_ffi-0.11.2 test/gir_ffi/builders/module_builder_test.rb