1#!/usr/local/bin/perl 2 3package X; 4 5BEGIN { unshift @INC, ( $0 =~ /\A(.*?)[\w\.]+\z/ )[0] } 6use Test; 7 8use Class::MakeMethods::Emulator::MethodMaker 9 grouped_fields => [ 10 'x' => [ qw / a b c / ], 11 ]; 12 13sub new { bless {}, shift; } 14my $o = new X; 15 16TEST { 1 }; 17my @f; 18TEST { @f = $o->x }; 19TEST { scalar @f == 3 }; 20TEST { $f[0] eq 'a' and $f[1] eq 'b' and $f[2] eq 'c' }; 21 22TEST { $o->a(123) }; 23TEST { $o->a == 123 }; 24TEST { ! defined $o->clear_a }; 25TEST { ! defined $o->a }; 26 27TEST { $o->b(456) }; 28TEST { $o->b == 456 }; 29TEST { ! defined $o->clear_b }; 30TEST { ! defined $o->b }; 31 32TEST { $o->c('baz') }; 33TEST { $o->c eq 'baz' }; 34TEST { ! defined $o->clear_c }; 35TEST { ! defined $o->c }; 36 37exit 0; 38 39