Sha256: e774e480a0d54ae44a52fae541a358433c0028df5b2c30392dca67ac02b5fe09

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

require 'spec_helper'

describe Customize::Characterize do

	with_model :product do
		table do |t|
			t.string :name
			t.timestamps
		end

		model do
			include Customize::Characterize
			include Customize::Inherited
		end
	end

	with_model :person do
		table do |t|
		end
		model do
			include Customize::Characterize
		end
	end

	context :model_without_inherit do
		subject { Person.create }

		it :has_character do
			subject.characters.create :key=>:foo, :type=>:boolean, :value=>true
			subject.reload
			subject.character[:foo].should be_true
		end

	end

	context :model_with_inherit do
		subject { Product.create! }
		
		it "has characters" do
			subject.characters.should_not be_nil
		end
		
		context "support type" do
			before :each do
				@value = example.metadata[:description_args].first			
				@type = example.metadata[:type]
				subject.characters.create :key=>@type, :type=>@type, :value=>@value
				subject.reload
			end
			
			after :each do
				subject.character[@type].should == @value
			end
			
			it 10, :type=>:integer do
			end
			it 12.34, :type=>:decimal do
			end
			it 'string', :type=>:string  do
			end
			it [1, 2, 3] do
			end
			it Hash.new(:foo=>:bar) do
			end
		end
		
		it "has readonly hash character" do
			subject.characters.create! :key=>:foo, :value=>'bar'
			subject.character[:foo].should == 'bar'
		end
		
		it "has inherited character" do
			parent = Product.create!
			parent.characters.create! :key=>:p, :value=>1
			subject.inherit parent
			subject.character[:p].should == 1
		end
	end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
customize-0.0.3 spec/customize/characterize_spec.rb