Attribute-Contract

 view release on metacpan or  search on metacpan

t/aliases.t  view on Meta::CPAN

use strict;
use warnings;

use Test::More;
use Test::Fatal;

package MyClass;

use Attribute::Contract
  -types => [qw/ClassName Str/],
  -names => {requires => 'In', ensures => 'Out'};

sub method : In(ClassName, Str) Out(Str) {
    {}
}

package main;

subtest 'work with requires aliases' => sub {
    like exception { MyClass->method([]) },
      qr/constraint "Str"/;
};

subtest 'work with ensures aliases' => sub {
    like exception { MyClass->method('123') },
      qr/constraint "Str"/;
};

done_testing;



( run in 1.327 second using v1.01-cache-2.11-cpan-54e63673c56 )