Sha256: ddc2c33bdf61308a80882a53fb0dbe1f76d5a6c117f8058294dd69b0ef095857

Contents?: true

Size: 1.37 KB

Versions: 1

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 "should allow defining methods that will 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

1 entries across 1 versions & 1 rubygems

Version Path
ruby_core_extensions-0.0.1 spec/object_spec.rb