1#!/usr/bin/perl -w
2
3use strict;
4
5use Test::More tests => 13;
6
7{
8    package Bar;
9
10    sub new {
11        my $class = shift;
12        return bless {@_}, $class;
13    }
14
15
16    package Foo;
17    our @ISA = qw(Bar);
18}
19
20{
21    my $obj = new_ok("Foo");
22    is_deeply $obj, {};
23    isa_ok $obj, "Foo";
24
25    $obj = new_ok("Bar");
26    is_deeply $obj, {};
27    isa_ok $obj, "Bar";
28
29    $obj = new_ok("Foo", [this => 42]);
30    is_deeply $obj, { this => 42 };
31    isa_ok $obj, "Foo";
32
33    $obj = new_ok("Foo", [], "Foo");
34    is_deeply $obj, {};
35    isa_ok $obj, "Foo";
36}
37
38# And what if we give it nothing?
39eval {
40    new_ok();
41};
42is $@, sprintf "new_ok() must be given at least a class at %s line %d.\n", $0, __LINE__ - 2;
43