NAME

Test::Mock::Apache2 - Mock mod_perl2 objects when running outside of Apache

VERSION

version 0.05

SYNOPSIS

use Test::Mock::Apache2;

my $r = Apache2::RequestUtil->request();
my $apr_req = APR::Request::Apache2->handle($r);

...

# Add configuration data that $r->dir_config() later can supply

use Test::Mock::Apache2 { MyAppSetting => "foo", MyPort => 1233 };

my $r = Apache2::RequestUtil->request();
my $port = $r->dir_config('MyPort');    # 1233

DESCRIPTION

Allows to work with Apache2::* objects without a running modperl server.

The purpose of this class is to be able to run some minimal unit tests for a code base that's hopelessly entangled with the Apache internals.

Current state is, to say the least, very incomplete. Will be hopefully expanded as the unit test suite grows.

METHODS

ap2_server

Return a mock Apache2::ServerRec empty object, with the following methods: server_hostname.

To set the hostname, set a server_hostname key in the configuration block when using the module.

use Test::Mock::Apache2 { server_hostname => 'localhost.localdomain' };

Default server_hostname is localhost.

ap2_request

Return a mock Apache2::RequestRec empty object, with the following methods: hostname, dir_config, server.

ap2_request_ap2

Return a mock APR::Request::Apache2 empty object with the following methods: new, jar, param, handle.

ap2_requestutil

Mocks the Apache2::RequestUtil> module to fake the +GlobalRequest option, so you can execute code like:

my $r = Apache2::RequestUtil->request();

and get back an Apache2::RequestRec object. Uses "ap2_request". Supplies the following methods: new, request, dir_config.

init_mocked_objects

Creates the initial instances of the mocked objects for the various Apache2::* classes.

AUTHOR

Cosimo Streppone <cosimo@opera.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2012 by Opera Software ASA.

This is free software, licensed under:

The (three-clause) BSD License