File: 01simple-vars.t

package info (click to toggle)
libattribute-storage-perl 0.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 172 kB
  • sloc: perl: 499; makefile: 3
file content (49 lines) | stat: -rw-r--r-- 1,203 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
#!/usr/bin/perl

use v5.14;
use warnings;

use Test2::V0;

use Attribute::Storage qw( get_varattr get_varattrs );

my $warnings = 0;
BEGIN {
   $SIG{__WARN__} = sub {
      local $SIG{__WARN__};
      warn $_[0];
      $warnings++;
   };
}

sub Title :ATTR(SCALAR,ARRAY,HASH)
{
   my $package = shift;
   my ( $title ) = @_;

   return "" unless defined $title;
   return $title;
}

my $lexvar :Title('The title of my lexical scalar');
my @lexvar :Title('The title of my lexical array');
my %lexvar :Title('The title of my lexical hash');

is( get_varattr( \$lexvar, "Title" ), "The title of my lexical scalar",
   'get_varattr Title on \$lexvar' );
is( get_varattr( \@lexvar, "Title" ), "The title of my lexical array",
   'get_varattr Title on \$lexvar' );
is( get_varattr( \%lexvar, "Title" ), "The title of my lexical hash",
   'get_varattr Title on \$lexvar' );

is( get_varattrs( \$lexvar ),
   { Title => "The title of my lexical scalar" },
   'get_varattrs on \$lexvar' );

our $pkgvar :Title('The title of a package var');

is( get_varattr( \$pkgvar, "Title" ), "The title of a package var",
   'get_varattr Title on \$pkgvar' );

is( $warnings, 0, 'No warnings were produced' );
done_testing;