Sha256: 0b4ed4775125ce5eb0e232a1c701a3f8c05c40183c6a16b44e0e994dfcbd0981

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

# encoding: UTF-8
require 'spec_helper'

describe ActiveData::Model::Collectionizable do
  let(:klass) do
    Class.new do
      include ActiveData::Model

      attribute :name

      def self.except_first
        self[1..-1]
      end

      def self.no_mars
        delete_if{|i| i.name == 'Mars'}
      end
    end
  end
  let(:collection){klass.collection([{:name => 'Hello'}, {:name => 'World'}, {:name => 'Mars'}])}

  specify{klass.const_defined?('Collection').should be_true}
  specify{klass.collection_class.should == klass.const_get(:Collection)}
  specify{klass.collection_class.collectible.should == klass}
  specify{klass.collection_class.new.should be_empty}

  specify{collection.should be_instance_of klass.collection_class}
  specify{collection.except_first.should be_instance_of klass.collection_class}
  specify{collection.no_mars.should be_instance_of klass.collection_class}
  specify{collection.except_first.should == klass.collection([{:name => 'World'}, {:name => 'Mars'}])}
  specify{collection.no_mars.should == klass.collection([{:name => 'Hello'}, {:name => 'World'}])}
  specify{collection.except_first.no_mars.should == klass.collection([{:name => 'World'}])}
  specify{collection.no_mars.except_first.should == klass.collection([{:name => 'World'}])}
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_data-0.1.0 spec/lib/active_data/model/collectionizable_spec.rb
active_data-0.0.1 spec/lib/active_data/model/collectionizable_spec.rb