Sha256: a5083505672a41c14a4f181b71d6bbd903fcfa7d70a1572d1dbd57cb7c371720

Contents?: true

Size: 715 Bytes

Versions: 3

Compression:

Stored size: 715 Bytes

Contents

# frozen_string_literal: true

require 'gir_ffi_test_helper'

describe GirFFI::FFIExt::Pointer do
  let(:klass) { 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 = klass.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

3 entries across 3 versions & 1 rubygems

Version Path
gir_ffi-0.11.4 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.11.3 test/gir_ffi/ffi_ext/pointer_test.rb
gir_ffi-0.11.2 test/gir_ffi/ffi_ext/pointer_test.rb