checkoutSession = $this->createMock(Session::class); $this->checkoutHelper = $this->createMock(Data::class); $this->itemPriceRenderer = $this->createMock(Renderer::class); $this->checkoutCart = $this->createMock(CheckoutCart::class); $this->quote = $this->createMock(Quote::class); $this->checkoutSession->method('getQuote') ->willReturn($this->quote); $this->cart = new Cart( $this->checkoutSession, $this->checkoutHelper, $this->itemPriceRenderer ); } public function testAfterGetSectionData() { $input = ['items' => [ [ 'item_id' => 1, 'product_price' => '' ], [ 'item_id' => 2, 'product_price' => '' ], ] ]; $this->checkoutHelper->method('formatPrice') ->willReturn('formatted'); $item1 = $this->createMock(Item::class); $item2 = $this->createMock(Item::class); $item1->method('getItemId') ->willReturn(1); $item2->method('getItemId') ->willReturn(2); $this->quote->method('getAllVisibleItems') ->willReturn([ $item1, $item2, ]); $this->itemPriceRenderer->method('toHtml') ->willReturn(1); $result = $this->cart->afterGetSectionData($this->checkoutCart, $input); self::assertArrayHasKey('subtotal_incl_tax', $result); self::assertArrayHasKey('subtotal_excl_tax', $result); self::assertArrayHasKey('items', $result); self::assertTrue(is_array($result['items'])); self::assertEquals(2, count($result['items'])); self::assertEquals(1, $result['items'][0]['product_price']); self::assertEquals(1, $result['items'][1]['product_price']); } }