Sha256: a3006928cf931d12d250f9349032b65efb3f28b3ebe2d9bb88e4fea8f7e8acc4

Contents?: true

Size: 1.68 KB

Versions: 6

Compression:

Stored size: 1.68 KB

Contents

require 'gir_ffi_test_helper'

describe GirFFI::MethodStubber do
  describe "#method_stub" do
    let(:stubber) { GirFFI::MethodStubber.new(method_info) }
    let(:result) { stubber.method_stub }

    describe "for a regular method" do
      let(:method_info) {
        get_method_introspection_data("Regress", "TestObj", "instance_method") }

      it "creates a method stub" do
        result.must_equal <<-STUB.reset_indentation
          def instance_method *args, &block
            setup_and_call :instance_method, *args, &block
          end
        STUB
      end
    end

    describe "for a static method" do
      let(:method_info) {
        get_method_introspection_data("Regress", "TestObj", "static_method") }

      it "creates a class method stub" do
        result.must_equal <<-STUB.reset_indentation
          def self.static_method *args, &block
            setup_and_call :static_method, *args, &block
          end
        STUB
      end
    end

    describe "for a module function" do
      let(:method_info) {
        get_introspection_data("Regress", "test_int") }

      it "creates a module method stub" do
        result.must_equal <<-STUB.reset_indentation
          def self.test_int *args, &block
            setup_and_call :test_int, *args, &block
          end
        STUB
      end
    end

    describe "for a method with an empty name" do
      let(:method_info) { get_method_introspection_data("GLib", "IConv", "") }

      it "creates a method stub with a safe name that sets up the unsafe method" do
        result.must_equal <<-STUB.reset_indentation
          def _ *args, &block
            setup_and_call :"", *args, &block
          end
        STUB
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gir_ffi-0.7.6 test/gir_ffi/method_stubber_test.rb
gir_ffi-0.7.5 test/gir_ffi/method_stubber_test.rb
gir_ffi-0.7.4 test/gir_ffi/method_stubber_test.rb
gir_ffi-0.7.3 test/gir_ffi/method_stubber_test.rb
gir_ffi-0.7.2 test/gir_ffi/method_stubber_test.rb
gir_ffi-0.7.1 test/gir_ffi/method_stubber_test.rb