Apache-Session-Wrapper

 view release on metacpan or  search on metacpan

t/02-register.t  view on Meta::CPAN

                                        ) };
    is( $@, '', 'made a new wrapper using Baz class with optional param' );

    eval { Apache::Session::Wrapper->new( class => 'Baz' ) };

    like( $@, qr/required parameters.+missing: thing/, 'incomplete params for Baz' );

    eval { Apache::Session::Wrapper->new( class => 'Baz',
                                          thing => 1,
                                          bar   => 5,
                                        ) };

    like( $@, qr/following parameter/, 'extra invalid param for Baz' );
}

{
    {
        package Apache::Session::Quux;
        use base 'Apache::Session::File';
    }

    # Tests multiple valid sets of required params.
    Apache::Session::Wrapper->RegisterClass( name     => 'Quux',
                                             required => [ [ 'thing1', 'thing2' ],
                                                           [ 'kitty' ],
                                                         ],
                                           );

    eval { Apache::Session::Wrapper->new( class  => 'Quux',
                                          thing1 => 1,
                                          thing2 => 1,
                                        ) };
    is( $@, '', 'made a new wrapper using Quux class' );

    eval { Apache::Session::Wrapper->new( class => 'Quux',
                                          kitty => 'Hello',
                                        ) };
    is( $@, '', 'made a new wrapper using Quux class' );

    eval { Apache::Session::Wrapper->new( class  => 'Quux',
                                          thing1 => 1,
                                        ) };
    like( $@, qr/some or all/i, 'missing required params for Quux' );
}

{
    {
        package Apache::Session::Store::Dummy;
        use base 'Apache::Session::Store::File';
    }

    {
        package Apache::Session::Generate::Dummy;
        use Apache::Session::Generate::MD5;

        # double assignment prevents a "used only once" warning
        *Apache::Session::Generate::Dummy::generate =
        *Apache::Session::Generate::Dummy::generate =
            \&Apache::Session::Generate::MD5::generate;

        *Apache::Session::Generate::Dummy::validate =
        *Apache::Session::Generate::Dummy::validate =
            \&Apache::Session::Generate::MD5::validate;
    }

    Apache::Session::Wrapper->RegisterFlexClass
        ( name     => 'Apache::Session::Store::Dummy',
          type     => 'store',
          required => [ [ 'size' ] ],
        );

    Apache::Session::Wrapper->RegisterFlexClass
        ( name     => 'Generate::Dummy',
          type     => 'generate',
          required => [ [ 'seed' ] ],
          optional => [ 'goo' ],
        );

    eval { Apache::Session::Wrapper->new
            ( class     => 'Flex',
              store     => 'Dummy',
              lock      => 'Null',
              generate  => 'Dummy',
              serialize => 'Storable',
              size      => 'big',
              seed      => 'corn',
            ) };
    is( $@, '', 'made a new Flex wrapper with Dummy store & generate' );

}




( run in 0.474 second using v1.01-cache-2.11-cpan-140bd7fdf52 )