class Shoulda::ActionController::Matchers::SetSessionMatcher

:nodoc:

def assigned_correct_value?

def assigned_correct_value?
  return true if @value.nil?
  assigned_value == @value
end

def assigned_value

def assigned_value
  session[@key]
end

def assigned_value?

def assigned_value?
  !assigned_value.nil?
end

def cleared_value?

def cleared_value?
  defined?(@value) && @value.nil? && assigned_value.nil?
end

def description

def description
  description = "set session variable #{@key.inspect}"
  description << " to #{@value.inspect}" if defined?(@value)
  description
end

def expectation

def expectation
  expectation = "session variable #{@key} to be set"
  expectation << " to #{@value.inspect}" if @value
  expectation
end

def failure_message

def failure_message
  "Expected #{expectation}, but #{result}"
end

def initialize(key)

def initialize(key)
  @key = key.to_s
end

def matches?(controller)

def matches?(controller)
  @controller = controller
  (assigned_value? && assigned_correct_value?) || cleared_value?
end

def negative_failure_message

def negative_failure_message
  "Didn't expect #{expectation}, but #{result}"
end

def result

def result
  if session.empty?
    "no session variables were set"
  else
    "the session was #{session.inspect}"
  end
end

def session

def session
  @controller.response.session.data
end

def to(value)

def to(value)
  @value = value
  self
end