summaryrefslogtreecommitdiffstats
path: root/t/lib/Test/Games/SMTNocturne/Demons.pm
blob: 92ad93c56e48bb45c0e8f6ad74d51615504236ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package Test::Games::SMTNocturne::Demons;
use strict;
use warnings;
use Exporter 'import';

use Games::SMTNocturne::Demons;
use Test::More;

our @EXPORT = ('fusion_is', 'set_fusion_options');

my $FUSION_OPTIONS = {};

sub set_fusion_options {
    $FUSION_OPTIONS = $_[0];
}

sub fusion_is {
    local $Test::Builder::Level = $Test::Builder::Level + 1;
    my ($demon1, $demon2, $expected) = @_;

    my $fused = eval {
        Games::SMTNocturne::Demons::fuse($demon1, $demon2, $FUSION_OPTIONS)
    };

    die $@ if $@ && $@ !~ /\bnyi\b/;
    local $TODO = $@ if $@;

    if ($fused) {
        is($fused->name, $expected);
    }
    else {
        is(undef, $expected);
    }
}

1;