summaryrefslogtreecommitdiff
path: root/spec/ruby/core/env/except_spec.rb
blob: fb8f3b7536da0b99687ee41a2b315dc5ef24d2a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require_relative 'spec_helper'
require_relative 'shared/to_hash'

describe "ENV.except" do
  before do
    @orig_hash = ENV.to_hash
  end

  after do
    ENV.replace @orig_hash
  end

  # Testing the method without arguments is covered via
  it_behaves_like :env_to_hash, :except

  it "returns a hash without the requested subset" do
    ENV.clear

    ENV['one'] = '1'
    ENV['two'] = '2'
    ENV['three'] = '3'

    ENV.except('one', 'three').should == { 'two' => '2' }
  end

  it "ignores keys not present in the original hash" do
    ENV.clear

    ENV['one'] = '1'
    ENV['two'] = '2'

    ENV.except('one', 'three').should == { 'two' => '2' }
  end
end