covertest.pl
#!/usr/bin/perl
use strict;
use warnings;
package myObj;
sub new {
my $class = shift;
my %args = @_;
my $self = {};
$self->{ name } = $args{ name } || 'default';
$self->{ value } = $args{ value } || '';
$self->{ chars } = $args{ chars } || qr/^[a-z]+$/;
return bless $self, $class;
}
sub set_name {
my $self = shift;
$self->{ name } = shift;
return;
}
sub set_value {
my $self = shift;
$self->{ value } = shift;
return;
}
sub set_chars {
my $self = shift;
$self->{ chars } = shift;
return;
}
sub get_name {
my $self = shift;
return $self->{ name };
}
sub get_value {
my $self = shift;
return $self->{ value };
}
sub get_chars {
my $self = shift;
return $self->{ chars };
}
package main;
use Test::More tests => 11;
ok( my $obj1 = myObj->new( name => 'test1',
value => 'myval',
chars => qr/^[0-9]$/
), "can create a myObj specifying values" );
isa_ok( $obj1, 'myObj' );
ok( my $obj2 = myObj->new(), "can create a myObj not specifying values" );
isa_ok( $obj2, 'myObj' );
ok( ! $obj2->set_name( 'test1' ), "can set name" );
ok( 'test1' eq $obj2->get_name(), "can get name" );
ok( ! $obj2->set_value( 'myval' ), "can set value" );
ok( 'myval' eq $obj2->get_value(), "can get value" );
ok( ! $obj2->set_chars( qr/^[0-9]$/ ), "can set chars" );
ok( qr/^[0-9]$/ eq $obj2->get_chars(), "can get chars" );
is_deeply( $obj1, $obj2, "obj1 seems deeply similar to obj2" );