Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 39 lines (26 sloc) 0.973 kb
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
use v6;
use Test;

plan 9;

#L<S12/Anonymous Mixin Roles using C<but> or C<does>/they may be used to name a desired property>

enum Maybe <No Yes Dunno>;
class Bar { }

{
    class Foo does Maybe { }

    my $x = Foo.new(Maybe => No);

    ok($x.No, 'Can test for enum members set by .new()');
    ok(!$x.Yes, 'Can test for enum members set by .new()');
    ok(!$x.Dunno, 'Can test for enum members set by .new()');
}

{
    my $y = Bar.new() does Maybe(Yes);

    ok(!$y.No, 'Can test for enum members set by does Maybe(Yes)');
    ok($y.Yes, 'Can test for enum members set by does Maybe(Yes)');
    ok(!$y.Dunno, 'Can test for enum members set by does Maybe(Yes)');
}

{
    my $z = Bar.new() but Maybe(Dunno);

    ok(!$z.No, 'Can test for enum members set by but Maybe(Dunno)');
    ok(!$z.Yes, 'Can test for enum members set by but Maybe(Dunno)');
    ok($z.Dunno, 'Can test for enum members set by but Maybe(Dunno)');
}


# vim: ft=perl6
Something went wrong with that request. Please try again.