Sha256: d82a77858b98a7999bb8db8f35e783d00c1b3787d07022ecd344b4c2840fcf2e

Contents?: true

Size: 1.38 KB

Versions: 5

Compression:

Stored size: 1.38 KB

Contents

require_relative '../../../test_helper'
require_relative '../../../../lib/vedeu/models/stream_collection'
require_relative '../../../../lib/vedeu/models/line'

module Vedeu
  describe StreamCollection do
    let(:described_class) { StreamCollection }

    describe '#coerce' do
      let(:subject) { Vedeu::Line.new({ streams: streams }).streams }
      let(:streams) {}

      context 'when there is no stream' do
        it 'returns a Array' do
          subject.must_be_instance_of(Array)
        end

        it 'returns an empty array' do
          subject.must_equal([])
        end
      end

      context 'when there is a single stream' do
        let(:streams) { "some text" }

        it 'returns an Array' do
          subject.must_be_instance_of(Array)
        end

        it 'contains a single Stream object' do
          subject.size.must_equal(1)
        end
      end

      context 'when there are multiple streams' do
        let(:streams) {
          [
            { text: 'some text' },
            { text: 'some more text' }
          ]
        }

        it 'returns an Array' do
          subject.must_be_instance_of(Array)
        end

        it 'returns a collection of Stream objects' do
          subject.first.must_be_instance_of(Stream)
        end

        it 'contains multiple Stream objects' do
          subject.size.must_equal(2)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vedeu-0.0.30 test/lib/vedeu/models/stream_collection_test.rb
vedeu-0.0.29 test/lib/vedeu/models/stream_collection_test.rb
vedeu-0.0.28 test/lib/vedeu/models/stream_collection_test.rb
vedeu-0.0.27 test/lib/vedeu/models/stream_collection_test.rb
vedeu-0.0.26 test/lib/vedeu/models/stream_collection_test.rb