From 538ec8a7f6406733f262c3c1f8021fff7f79b5eb Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 14 Aug 2008 18:23:46 +0000 Subject: [PATCH] more get and update tests. First test for newByUserId --- t/Shop/Vendor.t | 50 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/t/Shop/Vendor.t b/t/Shop/Vendor.t index 1f405b497..2e5a2d3d5 100644 --- a/t/Shop/Vendor.t +++ b/t/Shop/Vendor.t @@ -31,7 +31,7 @@ my $session = WebGUI::Test->session; #---------------------------------------------------------------------------- # Tests -my $tests = 23; +my $tests = 30; plan tests => 1 + $tests; #---------------------------------------------------------------------------- @@ -40,7 +40,7 @@ plan tests => 1 + $tests; my $loaded = use_ok('WebGUI::Shop::Vendor'); my $vendor; -my $fence; +my ($fence, $fenceCopy); my $fenceUser = WebGUI::User->new($session, 'new'); SKIP: { @@ -154,6 +154,52 @@ my $newProps = { url => 'http://www.shawshank.com', }; +$fence->update($newProps); +is($fence->get('name'), 'Warden Norton', 'get: get name'); +is($fence->get('url'), 'http://www.shawshank.com', 'get: updating name did not affect userId'); + +$newProps->{name} = 'Officer Hadley'; +is($fence->get('name'), 'Warden Norton', 'get: No leakage in passing hashref to get'); + +my $currentProps = $fence->get(); + +cmp_deeply( + $currentProps, + { + paymentInformation => ignore(), + vendorId => ignore(), + preferredPaymentType => ignore(), + paymentAddressId => ignore(), + dateCreated => ignore(), + url => 'http://www.shawshank.com', + userId => $fenceUser->userId, + name => 'Warden Norton', + }, + 'get: returns all properties' +); + +$currentProps->{name} = 'Jake the Raven'; +is($fence->get('name'), 'Warden Norton', 'get: No leakage returned hashref'); + +####################################################################### +# +# newByUserId +# +####################################################################### + +eval { $fenceCopy = WebGUI::Shop::Vendor->newByUserId(); }; +$e = Exception::Class->caught(); +isa_ok($e, 'WebGUI::Error::InvalidObject', 'newByUserId takes an exception to not giving it a session variable'); +cmp_deeply( + $e, + methods( + error => 'Need a session.', + got => '', + expected => 'WebGUI::Session', + ), + 'create: requires a session variable', +); + } #----------------------------------------------------------------------------