Sha256: b30c8bf61a096d5545dcd1c7e5470bd1f66dd19ba0bee7004a76031a980a743c

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

require 'spec_helper'

describe Datapipes::Composable do
  context 'with valid object' do
    let(:class_a) do
      Class.new do
        include Datapipes::Composable

        def call
          one
        end

        def one
          1
        end

        def exec
          accumulated.map(&:call)
        end
      end
    end

    let(:class_b) do
      Class.new do
        include Datapipes::Composable

        def call
          five
        end

        def five
          5
        end
      end
    end

    let(:a) { class_a.new }
    let(:b) { class_b.new }
    subject { a + b }

    it 'remember defined body' do
      expect(subject.exec).to eq [1, 5]
    end
  end

  context 'with tube' do
    let(:tube_a) do
      Class.new(Datapipes::Tube) do
        def run(data)
          data + 2
        end
      end.new
    end

    let(:tube_b) do
      Class.new(Datapipes::Tube) do
        def run(data)
          data * 3
        end
      end.new
    end

    subject { tube_a + tube_b }

    it 'generates new tube' do
      expect(subject.run_all(4)).to eq 18
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datapipes-0.0.4 spec/composable_spec.rb