Sha256: 732167882e1931837d27494db3cad7fb88ffb0fafc4a0234188fbb7b882128ed

Contents?: true

Size: 1.19 KB

Versions: 25

Compression:

Stored size: 1.19 KB

Contents

# encoding: utf-8
require "lumberjack/beats/server"
require "flores/random"

describe Lumberjack::Beats::AckingProtocolV2 do
  let(:results) { [] }
  subject { Lumberjack::Beats::AckingProtocolV2.new(number_of_events) }
  before { 1.upto(number_of_events) { |n| results << subject.ack?(n) } }

  context "with multiples events" do
    let(:number_of_events) { Flores::Random.integer(100..1024) }

    it "should return multiples partial acks" do
      expect(results.size).to eq(number_of_events)
      expect(results.count(true)).to be_within(1).of((number_of_events / number_of_events * Lumberjack::Beats::AckingProtocolV2::ACK_RATIO).ceil)
    end

    it "last ack should be true" do
      expect(results.last).to be_truthy
    end
  end

  context "with only one event" do
    let(:number_of_events) { 1 }

    it "should return true only once" do
      expect(results.size).to eq(number_of_events)
      expect(results.count(true)).to eq(1)
    end
  end

  context "when the windows size is lower than the ack_ratio" do
    let(:number_of_events) { 2 }

    it "should return true only once" do
      expect(results.size).to eq(number_of_events)
      expect(results.count(true)).to eq(1)
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
logstash-input-beats-3.0.4 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.9 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-3.0.3 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-3.0.2 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-3.0.1 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-3.0.0 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.8 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.7 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.5 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.3 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.2 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.2.0 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.1.4 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.1.3 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.1.2 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.1.1 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.0.3 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.0.2 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.0.1 spec/lumberjack/beats/acking_protocol_v2_spec.rb
logstash-input-beats-2.0.0 spec/lumberjack/beats/acking_protocol_v2_spec.rb