File: adds_recording_spec.rb

package info (click to toggle)
ruby-bogus 0.1.5-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 828 kB
  • ctags: 628
  • sloc: ruby: 4,124; makefile: 6; sh: 2
file content (43 lines) | stat: -rw-r--r-- 1,071 bytes parent folder | download
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
35
36
37
38
39
40
41
42
43
require 'spec_helper'

describe Bogus::AddsRecording do
  module SampleModule
    class Library
    end

    class OtherClass
    end
  end

  let(:create_proxy_class) { stub }
  let(:overwrites_classes) { stub }
  let(:overwritten_classes) { stub }

  let(:adds_recording) { isolate(Bogus::AddsRecording) }

  before do
    stub(create_proxy_class).call { Object }
    stub(overwrites_classes).overwrite
    stub(overwritten_classes).add
  end

  before do
    adds_recording.add(:library, SampleModule::Library)
  end

  it "creates the proxy" do
    expect(create_proxy_class).to have_received.call(:library, SampleModule::Library)
  end

  it "swaps the classes" do
    expect(overwrites_classes).to have_received.overwrite('SampleModule::Library', Object)
  end

  it "records the overwritten class, so that it can be later restored" do
    expect(overwritten_classes).to have_received.add("SampleModule::Library", SampleModule::Library)
  end

  it "returns the proxy class" do
    expect(adds_recording.add(:library, SampleModule::Library)).to eq Object
  end
end