The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Unit tests for common SAML functions

use Test::More tests => 4;

# Test Lasso presence and load _SAML module
SKIP: {
    eval "use Lasso;";
    skip "Lasso is not installed, can't test SAML features", 4 if ($@);
    use_ok('Lemonldap::NG::Portal::Simple');

    # Portal object
    $ENV{SCRIPT_NAME}     = '/test.pl';
    $ENV{SCRIPT_FILENAME} = '/tmp/test.pl';
    $ENV{REQUEST_METHOD}  = 'GET';
    $ENV{REQUEST_URI}     = '/';
    $ENV{QUERY_STRING}    = '';

    my $p = Lemonldap::NG::Portal::Simple->new(
        {
            globalStorage  => 'Apache::Session::File',
            domain         => 'example.com',
            authentication => 'SAML',
            userDB         => 'SAML',
            issuerDB       => 'Null',
            passwordDB     => 'Null',
            registerDB     => 'Null',
        }
    );

    # Date/timestamp conversion
    my $timestamp  = "1273653920";
    my $samldate   = "2010-05-12T08:45:20Z";
    my $samldatems = "2010-05-12T08:45:20.123456Z";

    ok(
        $p->timestamp2samldate($timestamp) eq $samldate,
        "Timestamp conversion into SAML2 date"
    );
    ok(
        $p->samldate2timestamp($samldate) eq $timestamp,
        "SAML2 date conversion into timestamp"
    );
    ok(
        $p->samldate2timestamp($samldatems) eq $timestamp,
        "SAML2 date (with ms) conversion into timestamp"
    );

}