Sha256: c9f9d9f00e4f6f400987ad9725f60f9a6b3c9336c630df416464696ace937024

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'test_helper'

require 'vedeu/models/composition'
require 'vedeu/models/attributes/interface_collection'
require 'vedeu/api/store'


module Vedeu
  describe InterfaceCollection do
    describe '#coerce' do
      before { API::Store.reset }

      it 'returns an empty collection when there are no interfaces' do
        composition = Composition.new
        composition.interfaces.must_equal([])
      end

      it 'returns a collection when there is a single interface' do
        Vedeu.interface('dumb') {}

        composition = Composition.new(
          {
            interfaces: { name: 'dumb' }
          }
        )
        composition.interfaces.first.must_be_instance_of(Interface)
      end

      it 'returns a collection when there are multiple interfaces' do
        Vedeu.interface('dumb')   {}
        Vedeu.interface('dumber') {}

        composition = Composition.new(
          {
            interfaces: [
              { name: 'dumb' },
              { name: 'dumber' }
            ]
          }
        )
        composition.interfaces.size.must_equal(2)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.1.8 test/lib/vedeu/models/attributes/interface_collection_test.rb