GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  TEST::DATABASEROW::OBJECT (3)

.ds Aq ’

NAME

Test::DatabaseRow::Object - examine database rows

CONTENTS

SYNOPSIS



  use Test::More tests => 1;
  use Test::DatabaseRow::Object;

  # setup the test
  my $tdr = Test::DatabaseRow::Object->new(
    sql_and_bind => "SELECT * FROM contacts WHERE cid = 123",
    tests        => [ name => "trelane" ],
  );

  # do the test and get a result back
  my $result_object = $tdr->tests_ok();

  # have those results render to Test::Builder
  $result_object->pass_to_test_builder("my database test");



DESCRIPTION

This module provides the underlying functionality of Test::DatabaseRow.

    Accessors

These are the read only accessors of the object. They may be (optionally) set at object creation time by passing their name and value to the constructor.

Each accessor may be queried by prefixing its name with the has_ to determine if it has been set or not.
db_results An arrayref of hashrefs, each representing a row returned from the database. Each key in the hashref should be the column name and the value the corresponding field’s value. This datastructure is identical to that.

If this accessor is not passed then it will be populated on first use by executing the contents of sql_and_bind against the passed dbh.

db_results_dumped A string representation of the database results.

If this accessor is not passed then it will be populated on first use by using Test::Builder’s explain function on db_results

sql_and_bind The SQL and bind variables to execute if no results were passed into the db_results hash. This should be an arrayref containing the SQL as the first element and the bind values as further values.

This accessor will automatically coerce a simple scalar passed in into a single

If this accessor is not passed then it will be populated on first use by building SQL from the where and table accessors.

dbh The database handle used to execute the SQL statement in sql_and_bind if no db_results were passed.
table The table name used to build the SQL query if no value is passed to sql_and_bind. String.
where The data structure used to build the where clause of the SQL query if no value is passed to <sql_and_bind>.

This accessor value should be a hashref of hashrefs, with the outer keys being the SQL comparison operator, the inner keys being the field names and the inner values being the values to match against. For example:



  {
    =    => { first => "Fred", last => "Flintstone", },
    like => { address => "%Bedrock%" },
  }



Values of undef will automatically converted into checks for NULLs.

This accessor automatically coerces array refs that are passed into a pure equals hashref. For example:



  [ foo => "bar", bazz => "buzz" ]



Will be coerced into:



  { "=" => { foo => "bar", bazz => "buzz" } }



See where in Test::DatabaseRow for a more detailed explanation.

verbose Truth value, default false. Controls if the diagnostic messages printed during row_ok on failure contain details of the SQL executed or not.
verbose_data Truth value, default false. Controls if the diagnostic messages printed during row_ok on failure contain a Data::Dumper style dump of the resulting rows from the database.
force_utf8 Truth value, default false. Controls if the utf8 flag should be turned on on values returned from the database. See utf8 hacks in Test::DatabaseRow for why this might be important.

This flag only effects data that this module places into db_resutls. If you manually populate this accessor this flag will have no effect.

tests If set, enables specified tests on the first element of db_results when row_ok is called.

This accessor value should be a hashref of hashrefs, with the outer keys being the Perl comparison operator, the inner keys being the field names and the inner values being the values to test against. For example:



  {
    eq => { first => "Fred", last => "Flintstone", },
    =~ => { address => "%Bedrock%" },
  }



This accessor automatically coerces array refs that are passed into a hashref structure, converting things that look like strings into eq tests, things that look like numbers into == tests and things that are references to regular expressions into =~ tests. Foe example:



  [ num => 123, letters => "abc", kinda => qr/substring/ ]



Will be coerced into



  {
    == => { num => 123, },
    eq => { letters => "abc", },
    =~ => { kinda => qr/substring/ },
  }



See tests in Test::DatabaseRow for a more detailed explanation.

check_all_rows Boolean to determine if we should test all rows (during db_results_ok and test_ok) or just check the first row. Default true.
results If set, enable tests to check the number of rows we returned by db_results is exactly this value when row_ok is called. Integer.
max_results If set, enable tests to check the number of rows we returned by db_results is at most this value when row_ok is called. Integer.
min_results If set, enable tests to check the number of rows we returned by db_results is at least this value when row_ok is called. Integer.

    Methods

new(...) Simple constructor. Passing arguments to the constructor sets the values of the accessors.
number_of_results_ok Returns a Test::DatabaseRow::Result that represents if the number of results in db_results match the requirements for the number of results.
row_at_index_ok( $row_index ) Returns a Test::DatabaseRow::Result that represents if the element corresponding to the passed row index in db_results match the tests defined in tests.
db_results_ok Returns a Test::DatabaseRow::Result that represents if all elements in db_results match the tests defined in tests.
test_ok Returns a Test::DatabaseRow::Result that represents if the number of results in db_results match the requirements for the number of results and all elements in db_results match the tests defined in tests.

BUGS

Bugs (and requests for new features) can be reported though the CPAN RT system: <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-DatabaseRow>

Alternatively, you can simply fork this project on github and send me pull requests. Please see <http://github.com/2shortplanks/Test-DatabaseRow>

AUTHOR

Written by Mark Fowler mark@twoshortplanks.com

Copyright Profero 2003, 2004. Copyright Mark Fowler 2011.

Some code taken from <B>Test::BuilderB>, written by Michael Schwern. Some code taken from <B>Regexp::CommonB>, written by Damian Conway. Neither objected to its inclusion in this module.

Some code taken from <B>Lingua::EN::Numbers::OrdinateB>, written by Sean M. Burke.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Test::DatabaseRow::Object, Test::DatabaseRow::Result, Test::More, DBI
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 TEST::DATABASEROW::OBJECT (3) 2014-07-06

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.