Renamed migration file

Fixed migration being published multiple times
Added more tests
Fixed setGlobalTax and setGlobalDiscount
This commit is contained in:
Patrick Henninger
2018-12-23 23:24:05 +01:00
parent 8615c1131f
commit 3ebe09f6ab
4 changed files with 52 additions and 12 deletions

View File

@@ -459,8 +459,10 @@ class Cart
public function setGlobalTax($taxRate) public function setGlobalTax($taxRate)
{ {
$this->taxRate = $taxRate; $this->taxRate = $taxRate;
if ($this->content && $this->content->count()) {
$this->content->each(function ($item, $key) { $content = $this->getContent();
if ($content && $content->count()) {
$content->each(function ($item, $key) {
$item->setTaxRate($this->taxRate); $item->setTaxRate($this->taxRate);
}); });
} }
@@ -495,8 +497,10 @@ class Cart
public function setGlobalDiscount($discount) public function setGlobalDiscount($discount)
{ {
$this->discount = $discount; $this->discount = $discount;
if ($this->content && $this->content->count()) {
$this->content->each(function ($item, $key) { $content = $this->getContent();
if ($content && $content->count()) {
$content->each(function ($item, $key) {
$item->setDiscountRate($this->discount); $item->setDiscountRate($this->discount);
}); });
} }

View File

@@ -29,13 +29,8 @@ class ShoppingcartServiceProvider extends ServiceProvider
} }
}); });
if ( ! class_exists('CreateShoppingcartTable')) {
// Publish the migration
$timestamp = date('Y_m_d_His', time());
$this->publishes([ $this->publishes([
__DIR__.'/../database/migrations/0000_00_00_000000_create_shoppingcart_table.php' => database_path('migrations/'.$timestamp.'_create_shoppingcart_table.php'), realpath(__DIR__.'/../database/migrations') => $this->app->databasePath().'/migrations'
], 'migrations'); ]);
}
} }
} }

View File

@@ -920,6 +920,47 @@ class CartTest extends TestCase
event(new Logout(\Auth::guard('web'), $user)); event(new Logout(\Auth::guard('web'), $user));
} }
/** @test */
public function can_change_tax_globally()
{
$cart = $this->getCart();
$cart->add( new BuyableProduct(1, 'Item', 10.00), 2);
$cart->setGlobalTax(0);
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
$this->assertEquals('20.00', $cartItem->total(2));
}
/** @test */
public function can_change_discount_globally()
{
$cart = $this->getCart();
$cart->add( new BuyableProduct(1, 'Item', 10.00), 2);
$cart->setGlobalTax(0);
$cart->setGlobalDiscount(50);
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
$this->assertEquals('10.00', $cartItem->total(2));
}
/** @test */
public function cart_hast_no_rounding_errors()
{
$cart = $this->getCart();
$cart->add( new BuyableProduct(1, 'Item', 10.004), 2);
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
$this->assertEquals('24.21', $cartItem->total(2));
}
/** /**
* Get an instance of the cart. * Get an instance of the cart.
* *