File: stateful.t

package info (click to toggle)
libmojolicious-perl 0.999926-1%2Bsqueeze2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,672 kB
  • ctags: 949
  • sloc: perl: 17,391; makefile: 4
file content (59 lines) | stat: -rw-r--r-- 2,007 bytes parent folder | download
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
#!/usr/bin/env perl

# Copyright (C) 2008-2010, Sebastian Riedel.

use strict;
use warnings;

use Test::More tests => 26;

# I personalized each of your meals.
# For example, Amy: you're cute, so I baked you a pony.
use_ok('Mojo::Stateful');

# Basic stuff
my $stateful = Mojo::Stateful->new;
ok($stateful, 'initialized');
is($stateful->state, 'start', 'default state');
ok(!$stateful->is_done, 'state is not done');

# is_state
ok($stateful->is_state('start'),            'state is start');
ok($stateful->is_state(qw/start other/),    'state is start or other');
ok(!$stateful->is_state(qw/neither other/), 'state is not neither or other');
ok(!$stateful->is_finished,                 'state is not finished');

# Change state
$stateful->state('connected');
is($stateful->state, 'connected', 'right state');
ok($stateful->is_state(qw/another connected/),
    'state is another or connected');
ok(!$stateful->is_done,     'state is not done');
ok(!$stateful->is_finished, 'state is not finished');

# Errors
ok(!defined($stateful->error), 'has no error');
ok(!$stateful->has_error,      'has no error');
$stateful->state_cb(sub { $stateful->{error}->[0] .= 'st' });
$stateful->error('te');
ok($stateful->has_error, 'has error');
is($stateful->error, 'test',  'right error');
is($stateful->state, 'error', 'right state');
ok($stateful->is_state(qw/error another/), 'state is error or another');
ok(!$stateful->is_done,                    'state is not done');
ok($stateful->is_finished,                 'state is finished');
$stateful->error('te', 500);
is_deeply([$stateful->error], ['test', 500], 'right error and code');

# done
$stateful->done;
is($stateful->state, 'done', 'right state');
ok($stateful->is_state(qw/another done error/),
    'state is another, done or error');
ok($stateful->is_done,     'state is done');
ok($stateful->is_finished, 'state is finished');

# Unknown error
$stateful = Mojo::Stateful->new;
$stateful->state('error');
is($stateful->error, 'Unknown error.', 'right error');