#!/usr/bin/perl
# Main testing for Class::Adapter
use strict;
BEGIN {
$| = 1;
$^W = 1;
}
use Test::More tests => 13;
use Scalar::Util 'refaddr';
use Class::Adapter ();
# Create an object
my $object = bless {}, 'Foo';
isa_ok( $object, 'Foo' );
# Create an adapter
my $adapter = Class::Adapter->new( $object );
isa_ok( $adapter, 'Class::Adapter' );
# Do bad things to the constructor
is( Class::Adapter->new(), undef, 'Class::Adapter->new() returns undef' );
my @evil = ( undef, '', 1, 'foo', \"foo", [], {}, (sub { 1 }) );
foreach my $it ( @evil ) {
is( Class::Adapter->new( $it ), undef,
'Class::Adapter->new(evil) returns undef' );
}
# Can we get access to the underlying object?
isa_ok( $adapter->_OBJECT_, 'Foo' );
is(
refaddr($object),
refaddr($adapter->_OBJECT_),
'->_OBJECT_ returns the original object',
);