#!/usr/local/bin/perl
package X;
BEGIN { unshift @INC, ( $0 =~ /\A(.*?)[\w\.]+\z/ )[0] }
use Test;
use Class::MakeMethods::Emulator::MethodMaker
grouped_fields => [
'x' => [ qw / a b c / ],
];
sub new { bless {}, shift; }
my $o = new X;
TEST { 1 };
my @f;
TEST { @f = $o->x };
TEST { scalar @f == 3 };
TEST { $f[0] eq 'a' and $f[1] eq 'b' and $f[2] eq 'c' };
TEST { $o->a(123) };
TEST { $o->a == 123 };
TEST { ! defined $o->clear_a };
TEST { ! defined $o->a };
TEST { $o->b(456) };
TEST { $o->b == 456 };
TEST { ! defined $o->clear_b };
TEST { ! defined $o->b };
TEST { $o->c('baz') };
TEST { $o->c eq 'baz' };
TEST { ! defined $o->clear_c };
TEST { ! defined $o->c };
exit 0;
syntax highlighted by Code2HTML, v. 0.9.1