Sha256: dfe8a84fe11fa3d33610a834152adf1b2e3e621c69ae918ae4ad7cde1ffd49be

Contents?: true

Size: 731 Bytes

Versions: 6

Compression:

Stored size: 731 Bytes

Contents

# frozen_string_literal: true

require 'gir_ffi_test_helper'

describe GirFFI::FFIExt::Pointer do
  let(:pointer_class) { Class.new { include GirFFI::FFIExt::Pointer } }
  describe '#to_object' do
    it 'finds the wrapping class by gtype and wraps the pointer in it' do
      ptr = pointer_class.new
      expect(ptr).to receive(:null?).and_return false
      object_class = Class.new

      expect(GObject).to receive(:type_from_instance_pointer).with(ptr).and_return 0xdeadbeef
      expect(GirFFI::Builder).to receive(:build_by_gtype).with(0xdeadbeef).and_return object_class
      expect(object_class).to receive(:direct_wrap).with(ptr).and_return 'good-result'

      ptr.to_object.must_equal 'good-result'
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gir_ffi-0.14.1 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.14.0 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.13.1 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.13.0 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.12.1 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.12.0 test/gir_ffi/ffi_ext/pointer_test.rb