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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
#!/usr/bin/perl -w
# vim: ts=2 sw=2 filetype=perl expandtab
# Test the ASSERT_USAGE code in POE::Kernel. This involves a lot of
# dying.
use strict;
use lib qw(./mylib);
use Test::More tests => 22;
BEGIN { delete $ENV{POE_ASSERT_USAGE}; }
sub POE::Kernel::ASSERT_RETVALS () { 1 }
BEGIN {
package POE::Kernel;
use constant TRACE_DEFAULT => exists($INC{'Devel/Cover.pm'});
}
BEGIN { use_ok("POE") }
# Disable any "didn't call run" warnings.
POE::Kernel->run();
# Strange return values.
eval { $poe_kernel->alarm(undef) };
ok(
$@ && $@ =~ /invalid parameter to alarm/,
"alarm with undefined event name"
);
eval { $poe_kernel->alarm_add(undef) };
ok(
$@ && $@ =~ /invalid parameter to alarm_add/,
"alarm_add with undefined event name"
);
eval { $poe_kernel->delay(undef) };
ok(
$@ && $@ =~ /invalid parameter to delay/,
"delay with undefined event name"
);
eval { $poe_kernel->delay_add(undef) };
ok(
$@ && $@ =~ /invalid parameter to delay_add/,
"delay_add with undefined event name"
);
eval { $poe_kernel->ID_id_to_session(999) };
ok(
$@ && $@ =~ /ID does not exist/,
"ID_id_to_session with unknown ID"
);
eval { $poe_kernel->ID_session_to_id(999) };
ok(
$@ && $@ =~ /session \(999\) does not exist/,
"ID_session_to_id with unknown session"
);
eval { $poe_kernel->refcount_increment(999) };
ok(
$@ && $@ =~ /session id 999 does not exist/,
"refcount_increment with unknown session ID"
);
eval { $poe_kernel->refcount_decrement(999) };
ok(
$@ && $@ =~ /session id 999 does not exist/,
"refcount_decrement with unknown session ID"
);
eval { $poe_kernel->state(moo => sub { } ) };
ok(
$@ && $@ =~ /session \(.*?\) does not exist/,
"state with nonexistent active session"
);
# Strange usage.
eval { $poe_kernel->alarm_set(undef) };
ok(
$@ && $@ =~ /undefined event name in alarm_set/,
"event undefined in alarm_set"
);
eval { $poe_kernel->alarm_set(moo => undef) };
ok(
$@ && $@ =~ /undefined time in alarm_set/,
"time undefined in alarm_set"
);
eval { $poe_kernel->alarm_remove(undef) };
ok(
$@ && $@ =~ /undefined alarm id in alarm_remove/,
"alarm ID undefined in alarm_remove"
);
eval { $poe_kernel->alarm_adjust(undef) };
ok(
$@ && $@ =~ /undefined alarm id in alarm_adjust/,
"alarm ID undefined in alarm_adjust"
);
eval { $poe_kernel->alarm_adjust(moo => undef) };
ok(
$@ && $@ =~ /undefined alarm delta in alarm_adjust/,
"alarm time undefined in alarm_adjust"
);
eval { $poe_kernel->delay_set(undef) };
ok(
$@ && $@ =~ /undefined event name in delay_set/,
"event name undefined in delay_set"
);
eval { $poe_kernel->delay_set(moo => undef) };
ok(
$@ && $@ =~ /undefined seconds in delay_set/,
"seconds undefined in delay_set"
);
eval { $poe_kernel->delay_adjust(undef) };
ok(
$@ && $@ =~ /undefined delay id in delay_adjust/,
"delay ID undefined in delay_adjust"
);
eval { $poe_kernel->delay_adjust(moo => undef) };
ok(
$@ && $@ =~ /undefined delay seconds in delay_adjust/,
"delay seconds undefined in delay_adjust"
);
POE::Session->create(
inline_states => {
_start => sub {
$_[KERNEL]->alias_set("moo");
}
}
);
POE::Session->create(
inline_states => {
_start => sub {
eval { $_[KERNEL]->alias_set("moo") };
ok(
$@ && $@ =~ /alias 'moo' is in use by another session/,
"alias already in use"
);
eval { $_[KERNEL]->alias_remove("moo") };
ok(
$@ && $@ =~ /alias 'moo' does not belong to current session/,
"alias belongs to another session"
);
}
}
);
eval { $poe_kernel->alias_remove("narf") };
ok(
$@ && $@ =~ /alias 'narf' does not exist/,
"alias does not exist"
);
exit 0;
|