App-Test-Generator

 view release on metacpan or  search on metacpan

t/test_extractor.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;

# use Test::DescribeMe qw(extended);	# New features
use Test::Most;
use File::Temp qw(tempdir);
use File::Spec;
use File::Path qw(make_path);

BEGIN {
	use_ok('App::Test::Generator::SchemaExtractor');
}

# Create a temporary module for testing
my $tempdir = tempdir(CLEANUP => 1);
my $test_module = File::Spec->catfile($tempdir, 'TestModule.pm');

# Write test module
open my $fh, '>', $test_module or die "Can't create test module: $!";
print $fh <<'END_MODULE';
package TestModule;

use strict;
use warnings;
use Carp qw(croak);

=head2 simple_string($name)

=head3 INPUT

  $name - string (3-50 chars), person's name

=cut

sub simple_string {
	my ($self, $name) = @_;
	croak unless defined $name;
	croak unless length($name) >= 3;
	croak unless length($name) <= 50;
	return uc($name);
}

=head2 simple_integer($count)

Parameters:
  $count - integer (1-100), number of items

=cut

sub simple_integer {
	my ($self, $count) = @_;
	croak unless $count >= 1;
	croak unless $count <= 100;
	return $count * 2;
}

=head2 with_regex($email)

Parameters:
  $email - string, matches /\@/

=cut

sub with_regex {
	my ($self, $email) = @_;
	croak unless $email =~ /\@/;
	return $email;
}

=head2 array_param($items)

Parameters:
  $items - arrayref

=cut

sub array_param {
	my ($self, $items) = @_;
	croak unless ref($items) eq 'ARRAY';
	return scalar @$items;
}

=head2 hash_param($config)

Parameters:
  $config - hashref

=cut



( run in 0.313 second using v1.01-cache-2.11-cpan-13bb782fe5a )