require 'rspec'

class DevOps
  attr_reader :monitor

  def initialize(arguments)
    @monitor = arguments.fetch(:monitor) { Monitor.new }
  end

  def check
    monitor.ping('DS1')
  end

  def noop
  end
end

class Monitor
  def ping(name)
    "pong #{name}"
  end
end

describe DevOps do
  let(:devops) { DevOps.new(monitor: mock_monitor) }
  let(:mock_monitor) { mock }

  it "#monitor called", :wip => true do
    mock_monitor.should_receive(:ping).with('DS1').and_return(stub.as_null_object)
    devops.check
  end

  it "#monitor not called" do
    devops.noop
  end
end