The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::Mock::One - Mock the world with one object

VERSION

version 0.001

SYNOPSIS

    use Test::Mock::One;

    my $mock = Test::Mock::One->new(
        foo      => 'return value',
        bar      => 1,

        hashref  => \{ foo => bar },
        arrayref => \[ foo => bar ],
        code     => sub    { return your_special_function },

        # Override various things
        X-Mock-Strict => 1,
        X-Mock-Stringify => sub { return 'foo' },
        X-Mock-ISA => sub { return 'foo' },
    );

    $mock->foo;         # 'return value'
    $mock->bar;         # 1
    $mock->hashref;     # { foo => bar}
    $mock->arrayref;    # [ foo, bar ]
    $mock->code;        # executes your_special_function

DESCRIPTION

Be able to mock many things with little code by using AUTOLOAD.

METHODS

new

Ways to override specific behaviours

X-Mock-Strict

Boolean value. Undefined attributes will not be mocked and calling them makes us die.

X-Mock-ISA

Mock the ISA into the given class. Supported ways to mock the ISA:

    X-Mock-ISA => 'Some::Pkg',
    X-Mock-ISA => qr/Some::Pkg/,
    X-Mock-ISA => [qw(Some::Pkg Other::Pkg)],
    X-Mock-ISA => sub { return 0 },
    X-Mock-ISA => undef,
X-Mock-Stringify

Tell us how to stringify the object

    X-Mock-Stringify => 'My custom string',
    X-Mock-Stringify => sub { return "foo" },

isa

Override the ISA from the object

AUTHOR

Wesley Schwengle <wesleys@opperschaap.net>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by Wesley Schwengle.

This is free software, licensed under:

  The (three-clause) BSD License