Sha256: a1065fb5f552c0640694e196241df2d2883362d8227ee42a495afad53480f7b3

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

require_relative 'test_helper'

class SessionSerialisationTest < Test::Unit::TestCase
  class User
    include GDS::SSO::User

  end

  def setup
    @old_user_model = GDS::SSO::Config.user_model
    GDS::SSO::Config.user_model = "SessionSerialisationTest::User"
    @user = stub("User", uid: 1234)
    @serializer = Warden::SessionSerializer.new(nil)
  end
  def teardown
    Timecop.return
    GDS::SSO::Config.user_model = @old_user_model
  end

  def test_serializing_a_user_returns_the_uid_and_a_timestamp
    Timecop.freeze
    result = @serializer.serialize(@user)

    assert_equal [1234, Time.now.utc], result
  end

  def test_deserializing_a_user_and_in_date_timestamp_returns_the_user
    User.expects(:find_by_uid).with(1234).returns(:a_user)

    result = @serializer.deserialize [1234, Time.now.utc - GDS::SSO::Config.auth_valid_for + 3600]

    assert_equal :a_user, result
  end

  def test_deserializing_a_user_and_out_of_date_timestamp_returns_nil
    User.expects(:find_by_uid).never

    result = @serializer.deserialize [1234, Time.now.utc - GDS::SSO::Config.auth_valid_for - 3600]

    assert_equal nil, result
  end

  def test_deserializing_a_user_without_a_timestamp_returns_nil
    User.expects(:find_by_uid).never

    result = @serializer.deserialize 1234

    assert_equal nil, result
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gds-sso-1.2.0 test/session_serialisation_test.rb