View | Details | Raw Unified | Return to bug 10298
Collapse All | Expand All

(-)a/t/lib/Mocks.pm (-15 / +31 lines)
Lines 1-23 Link Here
1
package t::lib::Mocks;
1
package t::lib::Mocks;
2
2
3
use Modern::Perl;
3
use Modern::Perl;
4
use C4::Context;
4
use Test::MockModule;
5
use Test::MockModule;
5
use t::lib::Mocks::Context;
6
6
7
our (@ISA,@EXPORT,@EXPORT_OK);
7
my %configs;
8
BEGIN {
8
sub mock_config {
9
    require Exporter;
9
    my $context = new Test::MockModule('C4::Context');
10
    @ISA = qw(Exporter);
10
    my ( $conf, $value ) = @_;
11
    push @EXPORT, qw(
11
    $configs{$conf} = $value;
12
        &set_solr
12
    $context->mock('config', sub {
13
        &set_zebra
13
        my ( $self, $conf ) = @_;
14
    );
14
        if ( exists $configs{$conf} ) {
15
            return $configs{$conf}
16
        } else {
17
            my $method = $context->original('config');
18
            return $method->($self, $conf);
19
        }
20
    });
15
}
21
}
16
22
17
my $context = new Test::MockModule('C4::Context');
23
my %preferences;
18
sub set_solr {
24
sub mock_preference {
19
    $context->mock('preference', sub { &t::lib::Mocks::Context::MockPreference( @_, "Solr", $context ) });
25
    my $context = new Test::MockModule('C4::Context');
20
}
26
    my ( $pref, $value ) = @_;
21
sub set_zebra {
27
    $preferences{$pref} = $value;
22
    $context->mock('preference', sub { &t::lib::Mocks::Context::MockPreference( @_, "Zebra", $context ) });
28
    $context->mock('preference', sub {
29
        my ( $self, $pref ) = @_;
30
        if ( exists $preferences{$pref} ) {
31
            return $preferences{$pref}
32
        } else {
33
            my $method = $context->original('preference');
34
            return $method->($self, $pref);
35
        }
36
    });
23
}
37
}
38
39
1;
(-)a/t/lib/Mocks/Context.pm (-14 lines)
Lines 1-13 Link Here
1
package t::lib::Mocks::Context;
2
use t::lib::Mocks::Context;
3
use C4::Context;
4
5
sub MockPreference {
6
    my ( $self, $syspref, $value, $mock_object ) = @_;
7
    return $value if $syspref eq 'SearchEngine';
8
    $mock_object->unmock("preference");
9
    my $r = C4::Context->preference($syspref);
10
    $mock_object->mock('preference', sub { &t::lib::Mocks::Context::MockPreference( @_, $value, $mock_object ) });
11
    return $r;
12
}
13
1;
14
- 

Return to bug 10298