addAddressType: initial implementation & unit test
This commit is contained in:
parent
a1df7fc544
commit
a3aafac44a
2 changed files with 52 additions and 0 deletions
|
@ -110,6 +110,41 @@ sub addSupporter ($$) {
|
|||
}
|
||||
######################################################################
|
||||
|
||||
=begin addAddressType
|
||||
|
||||
Adds an address type, or returns the existing one of that name if it already exists.
|
||||
|
||||
Arguments:
|
||||
|
||||
=over
|
||||
|
||||
=item $addressType
|
||||
|
||||
Scalar string that contains the email address type. die() is called if not defined.
|
||||
|
||||
=back
|
||||
|
||||
Returns id of the address type.
|
||||
|
||||
=cut
|
||||
|
||||
sub addAddressType($$) {
|
||||
my($self, $type) = @_;
|
||||
|
||||
die "addAddressType: type argument must be defined" if not defined $type;
|
||||
|
||||
my $val = $self->dbh()->selectall_hashref("SELECT id, name FROM address_type WHERE name = '$type'", 'name');
|
||||
return $val->{$type}{id} if (defined $val and defined $val->{$type} and defined $val->{$type}{id});
|
||||
|
||||
my $sth = $self->dbh->prepare("INSERT INTO address_type(name) VALUES(?)");
|
||||
|
||||
$sth->execute($type);
|
||||
my $id = $self->dbh->last_insert_id("","","","");
|
||||
$sth->finish();
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
=begin addEmailAddress
|
||||
|
||||
Arguments:
|
||||
|
|
|
@ -79,6 +79,23 @@ dies_ok { $sp->_addEmailAdress(undef, 'drapper@example.org', 'paypal'); }
|
|||
dies_ok { $sp->_addEmailAdress("String", 'drapper@example.org', 'paypal'); }
|
||||
"_addEmailAdress: dies for non-numeric id";
|
||||
|
||||
=item addAddressType
|
||||
|
||||
=cut
|
||||
|
||||
dies_ok { $sp->addAddressType(undef); } "addAddressType: dies for undef";
|
||||
|
||||
my $paypalPayerAddressType;
|
||||
|
||||
ok($paypalPayerAddressType = $sp->addAddressType("paypal payer"), "addAddressType: basic add works");
|
||||
|
||||
my $same;
|
||||
|
||||
ok($same = $sp->addAddressType("paypal payer"), "addAddressType: lookup works");
|
||||
|
||||
ok($same == $paypalPayerAddressType, "addAddressType: lookup returns same as the basic add");
|
||||
|
||||
|
||||
=back
|
||||
|
||||
=item Internal methods used only by the module itself.
|
||||
|
|
Loading…
Reference in a new issue