The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use Test::More tests => 12;

# Test the potential conflict between CompileCache and
# TemplateDir options

use_ok 'Text::MicroMason';

my $m1 = Text::MicroMason->new( -CompileCache, -TemplateDir, template_root => 'samples/' );
my $m2 = Text::MicroMason->new( -CompileCache, -TemplateDir, template_root => 'samples/subdir' );

######################################################################
#
# In the m2 object, using the samples/subdir, we should get an answer in German.

SUBDIR: {
    ok my $output = $m2->execute( file=>'test.msn', name=>'Sam', hour=>14);
    like ($output, qr/\QGuten Tag, Sam!\E/ );

    ok $output = $m2->execute( file=>'test.msn', name=>'Sam', hour=>10);
    like ($output, qr/\QGuten Morgen, Sam!\E/ );
}

# And, if we execute test.msn in m1, we should get an answer in English.

FILE: {
    ok my $output = $m1->execute( file=>'test.msn', name=>'Sam', hour=>14);
    like ($output, qr/\QGood afternoon, Sam!\E/ );

    ok $output = $m1->execute( file=>'test.msn', name=>'Sam', hour=>10);
    like ($output, qr/\QGood morning, Sam!\E/ );
}


my $m = Text::MicroMason->new( -TemplateDir, template_root => 'samples/' );

RELATIVE: {
    ok my $scr_hello = $m->execute( file => 'test-relative.msn', name => 'Dave');
    ok my $res_hello = "Test greeting:\nGood afternoon, Dave!\n";
    is ($m->execute(text=>$scr_hello), $res_hello );
}