App-vaporcalc
view release on metacpan or search on metacpan
t/lib/cmd/result.t view on Meta::CPAN
use Test::Modern;
use App::vaporcalc::Cmd::Result;
my $res = App::vaporcalc::Cmd::Result->new;
cmp_ok $res->action, 'eq', 'print',
'default action ok';
cmp_ok $res->string, 'eq', '',
'default string ok';
cmp_ok $res->prompt, 'eq', '(undef)',
'default prompt ok';
cmp_ok $res->prompt_default_ans, 'eq', '',
'default prompt_default_ans ok';
ok !$res->prompt_callback->(),
'default prompt_callback ok';
ok !$res->run_prompt_callback,
'run_prompt_callback without prompt_callback ok';
$res = App::vaporcalc::Cmd::Result->new(
action => 'next',
);
cmp_ok $res->action, 'eq', 'next',
'action eq next ok';
$res = App::vaporcalc::Cmd::Result->new(
action => 'last',
);
cmp_ok $res->action, 'eq', 'last',
'action eq last ok';
# prompt, with cb and no default answer
my %t;
$res = App::vaporcalc::Cmd::Result->new(
prompt => 'foo',
prompt_callback => sub {
my ($ans) = @_;
$t{$ans}++;
$t{$_}++;
},
);
cmp_ok $res->prompt, 'eq', 'foo',
'prompt ok';
cmp_ok $res->action, 'eq', 'prompt',
'action eq prompt ok';
$res->run_prompt_callback("bar\n");
cmp_ok $t{bar}, '==', 2,
'run_prompt_callback ok';
%t = ();
# prompt, with cb and default answer
$res = App::vaporcalc::Cmd::Result->new(
prompt => 'foo',
prompt_default_ans => 'bar',
prompt_callback => sub {
my ($ans) = @_;
$t{$ans}++;
$t{$_}++;
},
);
cmp_ok $res->prompt_default_ans, 'eq', 'bar',
'prompt_default_ans ok';
$res->run_prompt_callback;
$res->run_prompt_callback("baz");
is_deeply \%t,
+{ bar => 2, baz => 2 },
'run_prompt_callback with prompt_default_ans ok';
# recipe attached
my $recipe = bless +{}, 'App::vaporcalc::Recipe';
$res = App::vaporcalc::Cmd::Result->new(
recipe => $recipe,
);
ok $recipe == $res->recipe, 'recipe ok';
cmp_ok $res->action, 'eq', 'recipe',
'action eq recipe ok';
# resultset attached
$recipe = bless +{}, 'App::vaporcalc::RecipeResultSet';
$res = App::vaporcalc::Cmd::Result->new(
resultset => $recipe,
);
ok $recipe == $res->resultset, 'resultset ok';
cmp_ok $res->action, 'eq', 'display',
'action eq display ok';
done_testing
( run in 1.163 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )