| PITA-XML documentation | Contained in the PITA-XML distribution. |
PITA::XML::Install - A PITA report on a single distribution install
PITA::XML::Install is a data object that contains the complete
set of information on a single test/install run for a distribution on a
single host of an arbitrary platform.
# Create a new Install object
my $install = PITA::XML::Install->new(
request => $request
platform => $platform,
analysis => $analysis,
);
The new constructor is used to create a new installation report, a
collection of which are serialized to the PITA::XML XML file.
Returns a new PITA::XML::Install object, or dies on error.
The request accessor returns testing request information.
Returns a PITA::XML::Distribution object.
The platform accessor returns the platform specification for the install.
Returns a PITA::XML::Platform object.
$install->add_command( $command );
The add_command method adds a PITA::XML::Command object to the
list of commands in the install object.
Returns true, or dies is you do not pass a PITA::XML::Command object.
The commands accessor returns the commands executed during the testing.
Returns a list of zero or more PITA::XML::Command objects.
$install->add_test( $test );
The add_test method adds a PITA::XML::Test object to the
list of test results in the install object.
Returns true, or dies is you do not pass a PITA::XML::Test object.
The tests accessor returns the results of the individual tests run during the testing.
Returns a list of zero or more PITA::XML::Test objects.
The analysis accessor returns the analysis object for the test run.
Returns a PITA::XML::Analysis object, or undef if no analysis
performed during the testing.
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PITA-XML
For other issues, contact the author.
Adam Kennedy <adamk@cpan.org>, http://ali.as/
The Perl Image-based Testing Architecture (http://ali.as/pita/)
Copyright 2005 - 2011 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
| PITA-XML documentation | Contained in the PITA-XML distribution. |
package PITA::XML::Install;
use 5.006; use strict; use Carp (); use Params::Util qw{ _INSTANCE _SET0 }; use vars qw{$VERSION}; BEGIN { $VERSION = '0.51'; } ##################################################################### # Constructor and Accessors
sub new { my $class = shift; my $self = bless { @_ }, $class; # Check the object $self->_init; $self; } sub _init { my $self = shift; # We must have a platform spec unless ( _INSTANCE($self->platform, 'PITA::XML::Platform') ) { Carp::croak('Invalid or missing platform'); } # We must have a testing request unless ( _INSTANCE($self->request, 'PITA::XML::Request') ) { Carp::croak('Invalid or missing request'); } # The platform scheme should match the platform scheme # (ignoring any part after the dot in the request) my $scheme_regexp = '^' . quotemeta($self->platform->scheme) . '\\b'; unless ( $self->request->scheme =~ /$scheme_regexp/ ) { Carp::croak('Platform scheme does not match request scheme'); } # Zero or more commands $self->{commands} ||= []; unless ( _SET0( $self->{commands}, 'PITA::XML::Command') ) { Carp::croak('Invalid commands'); } # Zero or more tests $self->{tests} ||= []; unless ( _SET0( $self->{tests}, 'PITA::XML::Test') ) { Carp::croak('Invalid tests'); } # Analysis is optional if ( defined $self->analysis or exists $self->{analysis} ) { unless ( _INSTANCE($self->analysis, 'PITA::XML::Analysis') ) { Carp::croak('Invalid analysis object'); } } else { $self->{analysis} = undef; } $self; } ##################################################################### # Main Methods
sub request { $_[0]->{request}; }
sub platform { $_[0]->{platform}; }
sub add_command { my $self = shift; my $command = _INSTANCE(shift, 'PITA::XML::Command') or Carp::croak("Did not provide a PITA::XML::Command to add_command"); push @{ $self->{commands} }, $command; 1; }
sub commands { @{ $_[0]->{commands} }; }
sub add_test { my $self = shift; my $test = _INSTANCE(shift, 'PITA::XML::Test') or Carp::croak("Did not provide a PITA::XML::Test to add_test"); push @{ $self->{tests} }, $test; 1; }
sub tests { @{ $_[0]->{tests} }; }
sub analysis { $_[0]->{analysis}; } 1;