The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w
use strict;
use Test::More;

use t::lib::TTSimple;

my @data = (
    [<<'T', <<'X' ],
[% SWITCH lang -%]
[% CASE "Xslate" -%]
    ok
[% CASE DEFAULT -%]
    unlikely
[% END -%]
T
    ok
X

    [<<'T', <<'X' ],
[% SWITCH lang -%]
[% CASE "Perl" -%]
    unlikely
[% CASE DEFAULT -%]
    ok
[% END -%]
T
    ok
X

    [<<'T', <<'X' ],
[% SWITCH lang -%]
[% CASE ["TTerse", "Xslate"] -%]
    ok
[% CASE DEFAULT -%]
    unlikely
[% END -%]
T
    ok
X

    [<<'T', <<'X' ],
[% SWITCH lang -%]
[% CASE "TTerse" -%]
    unlikely
[% CASE "Xslate" -%]
    ok
[% CASE DEFAULT -%]
    unlikely
[% END -%]
T
    ok
X

    [<<'T', <<'X' ],
[% SWITCH lang -%]
[% CASE "TTerse" -%]
    unlikely
[% CASE "Perl" -%]
    unlikely
[% END -%]
T
X


    [<<'T', <<'X' ],
[% SWITCH value -%]
[% CASE 10  -%]
    ok
[% END -%]
T
    ok
X

    [<<'T', <<'X' ],
[% SWITCH lang -%]
[% CASE DEFAULT -%]
    ok
[% END -%]
T
    ok
X

    [<<'T', <<'X', 'extra newline'],
[% SWITCH lang -%]

[% CASE "TTerse" -%]
    unlikely
[% CASE "Xslate" -%]
    ok
[% CASE DEFAULT -%]
    unlikely
[% END -%]
T
    ok
X

    [<<'T', <<'X', 'lower cased'],
[% switch lang -%]
[% case "TTerse" -%]
    unlikely
[% case "Xslate" -%]
    ok
[% case default -%]
    unlikely
[% end -%]
T
    ok
X

);

foreach my $d(@data) {
    my($in, $out, $msg) = @$d;

    my %vars = (
        lang => 'Xslate',
        void => '',

        value => 10,
    );
    is render_str($in, \%vars), $out, $msg or diag($in);
}

done_testing;