use warnings;
use Test::More no_plan => 1;
+use Test::Exception;
BEGIN {
use_ok('MooseX::AttributeHelpers');
ok(!$stuff->has_options, '... no options');
is($stuff->num_options, 0, '... got no options');
-$stuff->add_options(1, 2, 3);
+lives_ok {
+ $stuff->add_options(1, 2, 3);
+} '... set the option okay';
+
is_deeply($stuff->options, [1, 2, 3], '... got options now');
ok($stuff->has_options, '... no options');
is($stuff->get_option_at(1), 2, '... get option at index 1');
is($stuff->get_option_at(2), 3, '... get option at index 2');
-$stuff->set_option_at(1, 100);
+lives_ok {
+ $stuff->set_option_at(1, 100);
+} '... set the option okay';
is($stuff->get_option_at(1), 100, '... get option at index 1');
-$stuff->add_options(10, 15);
+lives_ok {
+ $stuff->add_options(10, 15);
+} '... set the option okay';
+
is_deeply($stuff->options, [1, 100, 3, 10, 15], '... got more options now');
is($stuff->num_options, 5, '... got 5 options');
is($stuff->num_options, 4, '... got 4 options');
is_deeply($stuff->options, [1, 100, 3, 10], '... got diff options now');
-$stuff->insert_options(10, 20);
+lives_ok {
+ $stuff->insert_options(10, 20);
+} '... set the option okay';
is($stuff->num_options, 6, '... got 6 options');
is_deeply($stuff->options, [10, 20, 1, 100, 3, 10], '... got diff options now');
is($stuff->num_options, 5, '... got 5 options');
is($stuff->get_option_at(0), 20, '... get option at index 0');
+## check some errors
+
+dies_ok {
+ $stuff->add_options([]);
+} '... could not add an array ref where an int is expected';
+
+dies_ok {
+ $stuff->insert_options(undef);
+} '... could not add an undef where an int is expected';
+
+dies_ok {
+ $stuff->set_option(5, {});
+} '... could not add a hash ref where an int is expected';
+
## test the meta
my $options = $stuff->meta->get_attribute('options');