Acme-FSM
view release on metacpan or search on metacpan
t/base/query.t view on Meta::CPAN
# $Id: query.t 482 2013-03-08 22:47:45Z whynot $
# Copyright 2012, 2013 Eric Pozharski <whynot@pozharski.name>
# GNU GPLv3
# AS-IS, NO-WARRANTY, HOPE-TO-BE-USEFUL
use strict;
use warnings;
package t::TestSuite::FSM;
use parent qw| Acme::FSM |;
sub shift_shift {
my $bb = shift @_;
$bb->{bull} = shift @main::flags;
$bb->{shambles} = shift @_ if @_;
shift @main::flags }
package t::TestSuite::havoc;
sub new { bless { }, shift @_ }
sub shift_shift {
my $bb = shift @_;
$bb->{mess} = shift @main::flags;
$bb->{slops} = shift @_ if @_;
shift @main::flags }
package main;
use version 0.77; our $VERSION = version->declare( v2.3.2 );
use t::TestSuite qw| :diag :wraps |;
use Test::More tests => 45;
use Acme::FSM;
our( $bb, $rc, $stderr );
our %st = ( );
my $method = q|query|;
our @flags =
qw| The_Night_We_Died Zaia
Muh Ka_III
Zombies De_Zeuhl_Undazir
Eliphas_Levi Maneh_Fur_Da_Zess
Troller_Tanz Ek_Sun_Da_Zess
C_est_la_Vie_Qui_les_A_Menes_La Nono
Do_The_Music Da_Zeuhl_Worts_Mekanik
Thaud Wainsaht
The_Last_Seven_Minutes Nebehr_Gudahtt
Udu_Wudu Kohntarkosz |;
my $tag;
my $mf = q|{havoc}|;
my %plug = ( diag_level => 5 );
$tag = q|{havoc} is missing,|;
AFSMTS_class_wrap { %plug }, \%st;
isa_ok $bb, q|Acme::FSM|, qq|$tag constructed object|;
AFSMTS_method_wrap $method, undef, $mf;
like $@, qr.\Q {havoc} !isa defined., AFSMTS_croakson $tag;
$tag = q|{havoc} isa (HASH),|;
AFSMTS_method_wrap $method, \$tag, $mf;
like $@, qr.\Q isa (SCALAR)., AFSMTS_croakson $tag;
$tag = q|{havoc} isa (Acme::FSM),|;
AFSMTS_method_wrap $method, $bb, $mf;
like $@, qr.\Q {havoc} isa (Acme::FSM)., AFSMTS_croakson $tag;
$tag = q|{havoc} isa (CODE), {namespace} unset,|;
AFSMTS_method_wrap $method, \&t::TestSuite::FSM::shift_shift, $mf;
is_deeply
[ $bb->{bull}, exists $bb->{shambles}, $rc ],
[ q|The_Night_We_Died|, '', q|Zaia| ],
qq|$tag queried|;
like $stderr, qr.(?m)\Q[(eval)]: {havoc} isa (CODE).,
qq|$tag noted|;
$tag = q|{havoc} isa (CODE), {namespace} unset, argument isa set,|;
AFSMTS_method_wrap $method,
( run in 1.564 second using v1.01-cache-2.11-cpan-39bf76dae61 )