File: hub.t

package info (click to toggle)
libbadger-perl 0.16-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,400 kB
  • sloc: perl: 11,004; makefile: 9
file content (75 lines) | stat: -rw-r--r-- 1,874 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#============================================================= -*-perl-*-
#
# t/core/hub.t
#
# Test the Badger::Hub.pm module.  Run with -d option for debugging.
#
# Copyright (C) 2006 Andy Wardley.  All Rights Reserved.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
#========================================================================

use strict;
use warnings;

use lib qw( core/lib t/core/lib ./lib ../lib ../../lib );
use Badger::Hub;
use Badger::Test 
    tests => 6,
    debug => 'Badger::Hub',
    args  => \@ARGV;

my $pkg = 'Badger::Hub';

#------------------------------------------------------------------------
# test class methods
#------------------------------------------------------------------------

my $p1 = $pkg->prototype();
my $p2 = $pkg->prototype();
is( $p1, $p2, 'Hub prototype is a singleton' );
is( $p1, $Badger::Hub::PROTOTYPE, 'Hub prototype is cache in package' );

$pkg->destroy();

ok( ! defined $Badger::Hub::PROTOTYPE, 'Hub prototype destroyed' );


#-----------------------------------------------------------------------
# check we get methods failing
#-----------------------------------------------------------------------

eval { $pkg->nothing };
like( $@, qr/Invalid method 'nothing'/, 'invalid method' );


#-----------------------------------------------------------------------
# subclass to define some components
#-----------------------------------------------------------------------

package My::Hub;
use base 'Badger::Hub';

our $COMPONENTS = {
    widget => 'My::Widget',
};

package main;
my $hub    = My::Hub->new;
my $widget = $hub->widget;
ok( $widget, 'got widget' );
is( ref $widget, 'My::Widget', 'got My::Widget' );



__END__

# Local Variables:
# mode: perl
# perl-indent-level: 4
# indent-tabs-mode: nil
# End:
#
# vim: expandtab shiftwidth=4: