From 05b99d4e721b6f658ca345475dcdf5ff614db1b2 Mon Sep 17 00:00:00 2001 From: Patrick Henninger Date: Fri, 8 May 2020 20:58:58 +0200 Subject: [PATCH] Make getters public, Add Test --- src/Cart.php | 4 ++-- tests/CartTest.php | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/Cart.php b/src/Cart.php index f4474c3..382cbd6 100644 --- a/src/Cart.php +++ b/src/Cart.php @@ -890,7 +890,7 @@ class Cart * * @return \Carbon\Carbon|null */ - private function createdAt() + public function createdAt() { return $this->createdAt; } @@ -900,7 +900,7 @@ class Cart * * @return \Carbon\Carbon|null */ - private function updatedAt() + public function updatedAt() { return $this->createdAt; } diff --git a/tests/CartTest.php b/tests/CartTest.php index 24da3cf..15d2d66 100644 --- a/tests/CartTest.php +++ b/tests/CartTest.php @@ -2,6 +2,7 @@ namespace Gloudemans\Tests\Shoppingcart; +use Carbon\Carbon; use Gloudemans\Shoppingcart\Cart; use Gloudemans\Shoppingcart\CartItem; use Gloudemans\Shoppingcart\ShoppingcartServiceProvider; @@ -870,6 +871,40 @@ class CartTest extends TestCase Event::assertDispatched('cart.stored'); } + /** @test */ + public function it_can_store_and_retrieve_cart_from_the_database_with_correct_timestamps() + { + $this->artisan('migrate', [ + '--database' => 'testing', + ]); + + Event::fake(); + + $cart = $this->getCart(); + + + + $cart->add(new BuyableProduct()); + + $beforeStore = Carbon::now(); + + /* Sleep as database does not store ms */ + sleep(1); + + $cart->store($identifier = 123); + + sleep(1); + + $afterStore = Carbon::now(); + + $cart->restore($identifier); + + $this->assertTrue($beforeStore->lessThanOrEqualTo($cart->createdAt()) && $afterStore->greaterThanOrEqualTo($cart->createdAt())); + $this->assertTrue($beforeStore->lessThanOrEqualTo($cart->updatedAt()) && $afterStore->greaterThanOrEqualTo($cart->updatedAt())); + + Event::assertDispatched('cart.stored'); + } + /** * @test */