public function testRestore() { $item1 = new CartItem(array('name' => 'foo')); $item2 = new CartItem(array('name' => 'bar')); $storeGetReturn = array('id' => 'foo', 'items' => array($item1->toArray(), $item2->toArray())); $store = m::mock('Cart\\Storage\\Store'); $store->shouldReceive('get')->times(1)->andReturn(serialize($storeGetReturn)); $cart = new Cart('foo', $store); $cart->restore(); $this->assertSame('foo', $cart->getId()); $this->assertTrue($cart->totalUniqueItems() == 2); $this->assertTrue($cart->has($item1->id)); $this->assertTrue($cart->has($item2->id)); }