HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: //usr/local/rvm/src/ruby-3.0.2/spec/bundler/bundler/dep_proxy_spec.rb
# frozen_string_literal: true

RSpec.describe Bundler::DepProxy do
  let(:dep) { Bundler::Dependency.new("rake", ">= 0") }
  subject { described_class.get_proxy(dep, Gem::Platform::RUBY) }
  let(:same) { subject }
  let(:other) { described_class.get_proxy(dep, Gem::Platform::RUBY) }
  let(:different) { described_class.get_proxy(dep, Gem::Platform::JAVA) }

  describe "#eql?" do
    it { expect(subject.eql?(same)).to be true }
    it { expect(subject.eql?(other)).to be true }
    it { expect(subject.eql?(different)).to be false }
    it { expect(subject.eql?(nil)).to be false }
    it { expect(subject.eql?("foobar")).to be false }
  end

  describe "must use factory methods" do
    it { expect { described_class.new(dep, Gem::Platform::RUBY) }.to raise_error NoMethodError }
    it { expect { subject.dup }.to raise_error NoMethodError }
    it { expect { subject.clone }.to raise_error NoMethodError }
  end

  describe "frozen" do
    if Gem.ruby_version >= Gem::Version.new("2.5.0")
      error = Object.const_get("FrozenError")
    else
      error = RuntimeError
    end
    it { expect { subject.instance_variable_set(:@__platform, {}) }.to raise_error error }
  end
end