Sha256: ee5f2f4aa29332b0df574f25391f0124b66cd90978b68cb7bd8c9c43b30bfeb1

Contents?: true

Size: 1.37 KB

Versions: 4

Compression:

Stored size: 1.37 KB

Contents

require 'spec_helper'

describe Object do

  class TestClass; end

  class TestModel
    def id; 1; end
  end

  before do
    @object = TestClass.new
  end

  it "should allow definig virtual belongs_to associations" do
    expect { @object.virtual_belongs_to(:test_model) }.to_not raise_error
    expect { @object.test_model = TestModel.new }.to_not raise_error
    expect(@object.test_model_id).to eq 1
  end

end


describe Object do

  class ReadyError < StandardError; end

  class BooleanizeTest
    attr_accessor :ready

    def verify!
      fail ArgumentError, "Ready should be a boolean" unless ready.is_a?(TrueClass) ||
        ready.is_a?(FalseClass)
      fail ReadyError, "Not ready" unless ready
    end
  end


  before do
    @object = BooleanizeTest.new
  end


  it "allows defining methods that return boolean depending on the execution of another method" do
    expect { @object.booleanize(:verify!, rescue: ReadyError) }.to_not raise_error
    expect { @object.verify? }.to raise_error(ArgumentError, 'Ready should be a boolean')
    @object.ready = false
    expect { @object.verify? }.to_not raise_error
    expect(@object.verify?).to be false
    expect(@object.reason_not_verify).to eq "Not ready"
    @object.ready = true
    expect { @object.verify? }.to_not raise_error
    expect(@object.verify?).to be true
    expect(@object.reason_not_verify).to be nil
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby_core_extensions-0.4.0 spec/object_spec.rb
ruby_core_extensions-0.3.0 spec/object_spec.rb
ruby_core_extensions-0.2.0 spec/object_spec.rb
ruby_core_extensions-0.1.0 spec/object_spec.rb