The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
BEGIN {
	$|  = 1;
	$^W = 1;
}

use Test::More tests => 3;
use Test::NoWarnings;
use Aspect;

# Convert Foo into a singleton class
aspect Singleton => 'Foo::new';

my $foo1 = Foo->new;
my $foo2 = Foo->new;
is( "$foo1", "$foo2", 'there can only be one' );

# Create a lexical singleton to ensure it handles global vs lexical properly
SCOPE: {
	my $aspect = aspect Singleton => 'Bar::new';
	isa_ok( $aspect, 'Aspect::Library::Singleton' );
}





######################################################################
# Test Class

package Foo;

sub new {
	bless {}, shift;
};

package Bar;

sub new {
	bless {}, shift;
}