Sha256: c8f2d598494c76e65320344fcb853209dc37765ab88656012cb04f333b3bff8a

Contents?: true

Size: 1.75 KB

Versions: 46

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

require "spec_helper"

describe Rdkafka::Admin::CreateAclHandle do
  # If create acl was successful there is no error object
  # the error code is set to RD_KAFKA_RESP_ERR_NO_ERRORa
  # https://github.com/confluentinc/librdkafka/blob/1f9f245ac409f50f724695c628c7a0d54a763b9a/src/rdkafka_error.c#L169
  let(:response) { Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR }

  subject do
    Rdkafka::Admin::CreateAclHandle.new.tap do |handle|
      handle[:pending] = pending_handle
      handle[:response] = response
      # If create acl was successful there is no error object and the error_string is set to ""
      # https://github.com/confluentinc/librdkafka/blob/1f9f245ac409f50f724695c628c7a0d54a763b9a/src/rdkafka_error.c#L178
      handle[:response_string] = FFI::MemoryPointer.from_string("")
    end
  end

  describe "#wait" do
    let(:pending_handle) { true }

    it "should wait until the timeout and then raise an error" do
      expect {
        subject.wait(max_wait_timeout: 0.1)
      }.to raise_error Rdkafka::Admin::CreateAclHandle::WaitTimeoutError, /create acl/
    end

    context "when not pending anymore and no error" do
      let(:pending_handle) { false }

      it "should return a create acl report" do
        report = subject.wait

        expect(report.rdkafka_response_string).to eq("")
      end

      it "should wait without a timeout" do
        report = subject.wait(max_wait_timeout: nil)

        expect(report.rdkafka_response_string).to eq("")
      end
    end
  end

  describe "#raise_error" do
    let(:pending_handle) { false }

    it "should raise the appropriate error" do
      expect {
        subject.raise_error
      }.to raise_exception(Rdkafka::RdkafkaError, /Success \(no_error\)/)
    end
  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
rdkafka-0.16.1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.16.1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.16.0 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.16.0.rc1 spec/rdkafka/admin/create_acl_handle_spec.rb
rdkafka-0.16.0 spec/rdkafka/admin/create_acl_handle_spec.rb
rdkafka-0.16.0.beta1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.rc2 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.rc1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.beta3 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.beta2 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.beta1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.alpha2 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.15.0.alpha1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.14.10 spec/rdkafka/admin/create_acl_handle_spec.rb
rdkafka-0.15.1 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.14.9 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.14.8 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.14.7 spec/rdkafka/admin/create_acl_handle_spec.rb
karafka-rdkafka-0.14.6 spec/rdkafka/admin/create_acl_handle_spec.rb