NAME

SQL::Bibliosoph::Sims - A SQL::Bibliosoph Tester library

SYNOPSIS

my $bs = SQL::Bibliosoph::Sims();

my $array_of_hashes = $bs->h_ANYQUERY();
my $hash            = $bs->rowh_ANYQUERY();
my $array_of_arrays = $bs->ANYQUERY();

This is a simple class to replace SQL::Bibliosoph in unit test. This generate random data and does not need a catalog file. (Methods are handled on request with AUTOLOAD). The returned value is in concordance with the requested resulset( e.g.: If you ask for that hash (with the prefix rowh_) you will get a hashref).
    

DESCRIPTION

Will generate random date when you call any subrotine on it. This module is inspired on Test::Sims.

Constructor parameters

rows

This controls how many rows will be returned in the resultset. Defaults to 10.

presets

You can costumize the return of some particular query by using preset, like this:

my $bs = sql::bibliosoph::sims(
                presets => {
                    rowh_user       => '{ name => "juan", age => "42" }',
                    rowh_costumer   => '{ 
                                name => "rand_words( size=>10 )", 
                                age =>  "rand_chars( size=>2 )",
                    }',
                }
);

Values in the array will be evaluated. You can use rand_ functions from Data::Random to generate your values.

presets_catalog

You can also define catalog for tests. In this case, the queries not defined in the catalog will be random generated. The defined, will be evaluated:

my $bs = sql::bibliosoph::sims(
                presets_catalog => 'tests.bb',
);

tests.bb:
--[ TITo ]
{ a=>1, b=>2 }
--[ rowh_RANDy ]    
{name => join "", rand_chars( set=> "alpha", min=>5, max=>7) } 
--[ rowh_RAND2y ]
 {name => join "", rand_chars( set=> "numeric", min=>5, max=>7) }
--[ h_RAND3 ]
[ { id => (join '',rand_chars(set=>"numeric")), name => join ('', rand_chars(set=>"alpha")), role_code => 1 }, ],
--[ h_RAND4 ]
[ { id =>1 }, { id => 2 }, { id => 3 } , ],

BUGS

   If you use presets_catalog, arrays references [] rows MUST BE ended with a ',' (comma).