Sha256: ccce0186eb70ed77f3c960f6b87f2149a228787461b5c09cd4047cc688b13060

Contents?: true

Size: 911 Bytes

Versions: 7

Compression:

Stored size: 911 Bytes

Contents

require 'spec_helper'

describe Hashme do
  
  before :each do
    @model = Class.new do
      include Hashme
      property :name, String
    end
  end
  
  describe '.build' do
    it "should create a Model and give a block to build it" do
      expect(@model).to receive(:call_in_block)
      @model.build do |model|
        @model.call_in_block
        expect(model).to be_kind_of(@model)
      end
    end
  end

  describe "#initialize" do

    it "should accept nil" do
      expect {
        @obj = @model.new
      }.to_not raise_error
    end

    it "should accept and set attributes" do
      @obj = @model.new(:name => "Sam")
      expect(@obj.name).to eql("Sam")
    end

    it "should set default values so they are accessible by hash" do
      @model.property :surname, String, :default => "Nowl"
      @obj = @model.new
      expect(@obj.to_hash[:surname]).to eql('Nowl')
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
hashme-0.2.6 spec/hashme/base_spec.rb
hashme-0.2.5 spec/hashme/base_spec.rb
hashme-0.2.4 spec/hashme/base_spec.rb
hashme-0.2.3 spec/hashme/base_spec.rb
hashme-0.2.2 spec/hashme/base_spec.rb
hashme-0.2.1 spec/hashme/base_spec.rb
hashme-0.2.0 spec/hashme/base_spec.rb