App-Test-Generator
view release on metacpan or search on metacpan
t/default_value_extraction.t view on Meta::CPAN
$to = $to || $ENV{DEFAULT_EMAIL} || 'admin@example.com';
$subject //= 'No subject';
$body = defined $body ? $body : '';
$options ||= { from => 'noreply@example.com', cc => [] };
# ... email sending logic ...
return 1;
}
END_MODULE
my $extractor = create_extractor($module);
# Extract all schemas
my $schemas = $extractor->extract_all();
# Test database connection method
my $db_schema = $schemas->{connect_to_database};
my $db_input = $db_schema->{input};
is(
$db_input->{host}{_default},
'localhost',
'Real-world: Database host default'
);
is(
$db_input->{port}{_default},
3306,
'Real-world: Database port default'
);
is(
$db_input->{user}{_default},
'app_user',
'Real-world: Database user default'
);
is(
$db_input->{password}{_default},
undef,
'Real-world: Database password defaults to undef'
);
is(
$db_input->{database}{optional},
0,
'Real-world: Database name is required (no default)'
);
is(
$db_input->{ssl}{_default},
0,
'Real-world: SSL defaults to false'
);
is(
$db_input->{timeout}{_default},
10,
'Real-world: Timeout default'
);
# Test email method
my $email_schema = $schemas->{send_email};
my $email_input = $email_schema->{input};
is(
$email_input->{subject}{_default},
'No subject',
'Real-world: Email subject default'
);
is(
$email_input->{body}{_default},
'',
'Real-world: Email body defaults to empty string'
);
# Note: $options default is a hashref with from and cc keys
my $options_default = $email_input->{options}{_default};
ok(ref $options_default eq 'HASH', 'Real-world: Options defaults to hashref');
done_testing();
};
# Final summary
done_testing();
( run in 2.598 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )