require 'gir_ffi_test_helper'

describe GLib::Boolean do
  it 'has the same native size as an int' do
    FFI.type_size(GLib::Boolean).must_equal FFI.type_size :int
  end

  describe '.from_native' do
    it 'converts 0 to false' do
      GLib::Boolean.from_native(0, 'whatever').must_equal false
    end

    it 'converts 1 to true' do
      GLib::Boolean.from_native(1, 'whatever').must_equal true
    end
  end

  describe '.to_native' do
    it 'converts false to 0' do
      GLib::Boolean.to_native(false, 'whatever').must_equal 0
    end

    it 'converts true to 1' do
      GLib::Boolean.to_native(true, 'whatever').must_equal 1
    end
  end

  describe '.size' do
    it 'returns the correct type size' do
      GLib::Boolean.size.must_equal FFI.type_size :int
    end
  end
end
