Change the name of the sku accessor for shipsSeparately to isShippingSeparately, since it clashes with a property. Add tests. t/Asset/Sku.t passes.
This commit is contained in:
parent
caa1f330b8
commit
3a425f29bc
4 changed files with 13 additions and 20 deletions
|
|
@ -634,7 +634,7 @@ sub setTaxConfiguration {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 shipsSeparately
|
=head2 isShippingSeparately
|
||||||
|
|
||||||
Returns a boolean indicating whether this item must be shipped separately from other items.
|
Returns a boolean indicating whether this item must be shipped separately from other items.
|
||||||
If the shipsSeparately property is true, but isShippingRequired is false, this will return
|
If the shipsSeparately property is true, but isShippingRequired is false, this will return
|
||||||
|
|
@ -642,7 +642,7 @@ false.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub shipsSeparately {
|
sub isShippingSeparately {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
return $self->isShippingRequired && $self->shipsSeparately;
|
return $self->isShippingRequired && $self->shipsSeparately;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ sub calculate {
|
||||||
## Two items shipped separately = two bundles
|
## Two items shipped separately = two bundles
|
||||||
## 1 shipped separately plus 1 not = two bundles
|
## 1 shipped separately plus 1 not = two bundles
|
||||||
## two items shipped together = one bundle
|
## two items shipped together = one bundle
|
||||||
if ($sku->shipsSeparately) {
|
if ($sku->isShippingSeparately) {
|
||||||
$separatelyShipped += $quantity;
|
$separatelyShipped += $quantity;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ sub buildXML {
|
||||||
my $itemWeight = $sku->getWeight();
|
my $itemWeight = $sku->getWeight();
|
||||||
##Items that ship separately with a quantity > 1 are rate estimated as 1 item and then the
|
##Items that ship separately with a quantity > 1 are rate estimated as 1 item and then the
|
||||||
##shipping cost is multiplied by the quantity.
|
##shipping cost is multiplied by the quantity.
|
||||||
if (! $sku->shipsSeparately ) {
|
if (! $sku->isShippingSeparately ) {
|
||||||
$itemWeight *= $item->get('quantity');
|
$itemWeight *= $item->get('quantity');
|
||||||
}
|
}
|
||||||
$weight += $itemWeight;
|
$weight += $itemWeight;
|
||||||
|
|
@ -193,7 +193,7 @@ sub _calculateFromXML {
|
||||||
WebGUI::Error::RemoteShippingRate->throw(error => "Illegal package index returned by USPS: $id");
|
WebGUI::Error::RemoteShippingRate->throw(error => "Illegal package index returned by USPS: $id");
|
||||||
}
|
}
|
||||||
my $unit = $shippableUnits[$id];
|
my $unit = $shippableUnits[$id];
|
||||||
if ($unit->[0]->getSku->shipsSeparately) {
|
if ($unit->[0]->getSku->isShippingSeparately) {
|
||||||
##This is a single item due to ships separately. Since in reality there will be
|
##This is a single item due to ships separately. Since in reality there will be
|
||||||
## N things being shipped, multiply the rate by the quantity.
|
## N things being shipped, multiply the rate by the quantity.
|
||||||
$cost += $rate * $unit->[0]->get('quantity');
|
$cost += $rate * $unit->[0]->get('quantity');
|
||||||
|
|
@ -339,7 +339,7 @@ sub _getShippableUnits {
|
||||||
ITEM: foreach my $item (@{$cart->getItems}) {
|
ITEM: foreach my $item (@{$cart->getItems}) {
|
||||||
my $sku = $item->getSku;
|
my $sku = $item->getSku;
|
||||||
next ITEM unless $sku->isShippingRequired;
|
next ITEM unless $sku->isShippingRequired;
|
||||||
if ($sku->shipsSeparately) {
|
if ($sku->isShippingSeparately) {
|
||||||
push @shippableUnits, [ $item ];
|
push @shippableUnits, [ $item ];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -30,16 +30,18 @@ my $session = WebGUI::Test->session;
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Tests
|
# Tests
|
||||||
|
|
||||||
plan tests => 21; # Increment this number for each test you create
|
plan tests => 22; # Increment this number for each test you create
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# put your tests here
|
# put your tests here
|
||||||
my $root = WebGUI::Asset->getRoot($session);
|
my $root = WebGUI::Asset->getRoot($session);
|
||||||
|
warn "Make sku\n";
|
||||||
my $sku = $root->addChild({
|
my $sku = $root->addChild({
|
||||||
className=>"WebGUI::Asset::Sku",
|
className=>"WebGUI::Asset::Sku",
|
||||||
title=>"Test Sku",
|
title=>"Test Sku",
|
||||||
});
|
});
|
||||||
isa_ok($sku, "WebGUI::Asset::Sku");
|
isa_ok($sku, "WebGUI::Asset::Sku");
|
||||||
|
addToCleanup($sku);
|
||||||
|
|
||||||
$sku->addToCart;
|
$sku->addToCart;
|
||||||
|
|
||||||
|
|
@ -64,13 +66,14 @@ is($sku->isRecurring, 0, "skus are not recurring by default");
|
||||||
is($sku->isShippingRequired, 0, "skus are not shippable by default");
|
is($sku->isShippingRequired, 0, "skus are not shippable by default");
|
||||||
is($sku->getConfiguredTitle, $sku->getTitle, "configured title and title should be the same by default");
|
is($sku->getConfiguredTitle, $sku->getTitle, "configured title and title should be the same by default");
|
||||||
is($sku->shipsSeparately, 0, 'shipsSeparately return 0 by default');
|
is($sku->shipsSeparately, 0, 'shipsSeparately return 0 by default');
|
||||||
|
is($sku->isShippingSeparately, 0, 'isShippingSeparately return 0 by default');
|
||||||
|
|
||||||
$sku->update({shipsSeparately => 1,});
|
$sku->shipsSeparately(1);
|
||||||
is($sku->shipsSeparately, 0, 'shipsSeparately only returns true when isShippingRequired AND shipsSeparately');
|
is($sku->isShippingSeparately, 0, 'isShippingSeparately only returns true when isShippingRequired AND shipsSeparately');
|
||||||
|
|
||||||
{
|
{
|
||||||
local *WebGUI::Asset::Sku::isShippingRequired = sub { return 1};
|
local *WebGUI::Asset::Sku::isShippingRequired = sub { return 1};
|
||||||
is($sku->shipsSeparately, 1, 'shipsSeparately only returns true when isShippingRequired AND shipsSeparately');
|
is($sku->isShippingSeparately, 1, 'isShippingSeparately only returns true when isShippingRequired AND shipsSeparately');
|
||||||
}
|
}
|
||||||
|
|
||||||
ok(! $sku->isShippingRequired, 'Making sure that GLOB is no longer in effect');
|
ok(! $sku->isShippingRequired, 'Making sure that GLOB is no longer in effect');
|
||||||
|
|
@ -82,13 +85,3 @@ $item->cart->delete;
|
||||||
|
|
||||||
my $loadSku = WebGUI::Asset::Sku->newBySku($session, $sku->get("sku"));
|
my $loadSku = WebGUI::Asset::Sku->newBySku($session, $sku->get("sku"));
|
||||||
is($loadSku->getId, $sku->getId, "newBySku() works.");
|
is($loadSku->getId, $sku->getId, "newBySku() works.");
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# Cleanup
|
|
||||||
END {
|
|
||||||
|
|
||||||
$sku->purge;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
1;
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue