Sha256: 6da536f55761c052be61bd4ecef1ff23881deadcb60e97a03c36181a52844a7d

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'spec_helper'
require 'observed/execution_job_factory'

describe Observed::ExecutionJobFactory do
  subject {
    Observed::ExecutionJobFactory.new
  }
  it 'should convert observers, translators, reporters to jobs' do
    output = mock('output')

    the_observer = Class.new(Observed::Observer) do
      def observe(data)
        data.merge(b:2)
      end
    end.new
    the_reporter = Class.new(Observed::Reporter) do
      attribute :output
      def report(tag, time, data)
        output.write(tag: tag, time: time, data: data)
      end
    end.new(output: output)
    the_translator = Class.new(Observed::Translator) do
      def translate(tag, time, data)
        data.merge(c:3)
      end
    end.new
    job = subject.convert_to_job(the_observer)
      .then(subject.convert_to_job(the_translator))
      .then(subject.convert_to_job(the_reporter))
    tag = 'the_tag'
    time = Time.now
    output.expects(:write).with(tag: tag, time: time, data: {a:1,b:2,c:3})
    job.now({a:1}, {tag: tag, time: time})
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
observed-0.2.0.rc1 spec/execution_job_factory_spec.rb