Sha256: 2133dd04b231822f7d952333468b5c45e58f8758eb41b99c69c1396f2a110072

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

require_relative '../../../test_helper'
require_relative '../../../../lib/vedeu/models/collection'

module Vedeu
  class TestClass
    include Collection

    def initialize(*args); end
  end

  describe Collection do
    describe '#coercer' do
      it 'returns an empty collection when nil or empty' do
        Collection.coercer(nil, TestClass, :key).must_equal([])
      end

      it 'returns an empty collection when nil or empty' do
        Collection.coercer('',  TestClass, :key).must_equal([])
      end

      it 'returns an empty collection when nil or empty' do
        Collection.coercer([],  TestClass, :key).must_equal([])
      end

      it 'returns an empty collection when nil or empty' do
        Collection.coercer({},  TestClass, :key).must_equal([])
      end

      it 'returns a single model in a collection when a String' do
        Collection.coercer('test', TestClass, :key).size.must_equal(1)
      end

      it 'returns a collection of models when a single hash' do
        Collection.coercer({ :test1 => 'test1' }, TestClass, :key)
          .size.must_equal(1)
      end

      it 'returns a collection of models when multiple hashes' do
        Collection.coercer([
          { :test1 => 'test1' }, { :test2 => 'test2' }
        ], TestClass, :key).size.must_equal(2)
      end

      it 'returns a collection of models when a single array' do
        Collection.coercer([{ :test3 => 'test3' }], TestClass, :key)
          .size.must_equal(1)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.32 test/lib/vedeu/models/collection_test.rb