Sha256: 7795024d4ed100c5fa5fde9b20c068983a3ca8b457e4dca2b741734708736f97

Contents?: true

Size: 1.01 KB

Versions: 12

Compression:

Stored size: 1.01 KB

Contents

require 'ganymed/sampler/datasource'

shared_context 'DataSource' do
  let(:ns) { 'foo.bar' }
  let(:origin) { 'example.com' }
  let(:ticks) { [300, 1] }
  let(:value) { rand }
end

shared_examples Ganymed::Sampler::DataSource do
  %w(
    add
    buffer
    each
    feed
    flush
    ticks
  ).each do |method|
    it { should respond_to method }
  end

  describe "#add" do
    it "should add the given value to each tick buffer" do
      subject.add(ns, origin, value)
      ticks.each do |tick|
        subject.buffer[tick][ns][origin].should include(value)
      end
    end
  end

  describe "#each" do
    before(:each) do
      values.each do |value|
        subject.add(ns, origin, value)
      end
    end

    it "should clear the buffer" do
      subject.each(1) { |ns, origin, values| }
      subject.buffer[1].should be_empty
    end

    it "should yield all values" do
      subject.should_receive(:each).with(1).once.and_yield(ns, origin, values).once
      subject.each(1) { |ns, origin, values| }
    end
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ganymed-0.3.4 spec/sampler/datasource_examples.rb
ganymed-0.3.3 spec/sampler/datasource_examples.rb
ganymed-0.3.2 spec/sampler/datasource_examples.rb
ganymed-0.3.1 spec/sampler/datasource_examples.rb
ganymed-0.3.0 spec/sampler/datasource_examples.rb
ganymed-0.2.3 spec/sampler/datasource_examples.rb
ganymed-0.2.2 spec/sampler/datasource_examples.rb
ganymed-0.2.1 spec/sampler/datasource_examples.rb
ganymed-0.2.0 spec/sampler/datasource_examples.rb
ganymed-0.1.2 spec/sampler/datasource_examples.rb
ganymed-0.1.1 spec/sampler/datasource_examples.rb
ganymed-0.1.0 spec/sampler/datasource_examples.rb