Apache-Session-Wrapper

 view release on metacpan or  search on metacpan

t/01-basic.t  view on Meta::CPAN

    my $w = Apache::Session::Wrapper->new(%params);

    $w->session( session_id => $id )->{bar}{baz} = 50;

    is( $w->session( session_id => $id )->{bar}{baz}, 50,
        'always write - in memory value' );
}

{
    my $w = Apache::Session::Wrapper->new(%params);

    is( $w->session( session_id => $id )->{bar}{baz}, 50,
        'always write - stored value' );
}


{
    my $w = Apache::Session::Wrapper->new( %params, always_write => 0 );

    $w->session( session_id => $id )->{bar}{baz} = 100;

    is( $w->session( session_id => $id )->{bar}{baz}, 100,
        'always write is off - in memory value' );
}

{
    my $w = Apache::Session::Wrapper->new( %params, always_write => 0 );

    is( $w->session( session_id => $id )->{bar}{baz}, 50,
        'always write is off - stored value' );

    $w = Apache::Session::Wrapper->new( %params, session_id => $id );
    is( $w->session->{_session_id}, $id, 'id matches session id given to new()' );
}

{
    my $w = Apache::Session::Wrapper->new( %params );

    $w->session( session_id => $id )->{quux} = 100;

    $w->delete_session;

    is( $w->session( session_id => $id )->{quux}, undef,
        'session is empty after delete_session' );
}

{
    no warnings 'redefine';
    # so attempt to connect to MySQL doesn't happen
    local *Apache::Session::Wrapper::_make_session = sub {};

    my $wrapper =
        eval { local $^W = 0;
               Apache::Session::Wrapper->new( class     => 'Flex',
                                              store     => 'MySQL',
                                              lock      => 'Null',
                                              generate  => 'MD5',
                                              serialize => 'Storable',
                                              data_source => 'foo',
                                              user_name   => 'bar',
                                              password    => 'baz',
                                            ) };
    unlike( $@, qr/parameters/, 'pass correct parameters for MySQL flex' );

    is( $wrapper->{params}{DataSource}, 'foo', 'DataSource is foo' );
    is( $wrapper->{params}{UserName}, 'bar', 'UserName is bar' );
    is( $wrapper->{params}{Password}, 'baz', 'Password is baz' );
}

{
    eval { local $^W = 0;
           Apache::Session::Wrapper->new( class       => 'Postgres',
                                          data_source => 'foo',
                                          user_name   => 'foo',
                                          password    => 'foo',
                                          commit      => 0,
                                        ) };
    unlike( $@, qr/parameters/, 'first param set for Pg' );
}

{
    my $dbh = bless {}, 'DBI';

    eval { local $^W = 0;
           Apache::Session::Wrapper->new( class  => 'Postgres',
                                          handle => $dbh,
                                          commit => 0,
                                        ) };
    unlike( $@, qr/parameters/, 'second param set for Pg' );
}

{
    my $dbh = bless {}, 'DBI';

    eval { Apache::Session::Wrapper->new( class  => 'Postgres',
                                          commit => 0,
                                        ) };
    like( $@, qr/required parameters.+missing: handle/, 'incomplete params for Pg' );
}



( run in 0.781 second using v1.01-cache-2.11-cpan-bbc515a03b3 )