2, 'quantity' => 3], ['wp' => 5, 'quantity' => 1], ]; $this->assertSame(11, BasketCalculator::summaryWp($basket)); } public function testSummaryWpReturnsZeroForEmptyBasket(): void { $this->assertSame(0, BasketCalculator::summaryWp([])); $this->assertSame(0, BasketCalculator::summaryWp(null)); } public function testCountProductsSumsQuantities(): void { $basket = [ ['quantity' => 2], ['quantity' => 3], ['quantity' => 1], ]; $this->assertSame(6, BasketCalculator::countProducts($basket)); } public function testCountProductsReturnsZeroForEmptyBasket(): void { $this->assertSame(0, BasketCalculator::countProducts([])); $this->assertSame(0, BasketCalculator::countProducts(null)); } public function testCountProductsTextSingular(): void { $this->assertSame('1 produkt', BasketCalculator::countProductsText(1)); } public function testCountProductsTextPlural2to4(): void { $this->assertSame('2 produkty', BasketCalculator::countProductsText(2)); $this->assertSame('3 produkty', BasketCalculator::countProductsText(3)); $this->assertSame('4 produkty', BasketCalculator::countProductsText(4)); } public function testCountProductsTextPlural5Plus(): void { $this->assertSame('0 produktów', BasketCalculator::countProductsText(0)); $this->assertSame('5 produktów', BasketCalculator::countProductsText(5)); $this->assertSame('12 produktów', BasketCalculator::countProductsText(12)); $this->assertSame('100 produktów', BasketCalculator::countProductsText(100)); } public function testCountProductsTextCastsToInt(): void { $this->assertSame('3 produkty', BasketCalculator::countProductsText('3')); $this->assertSame('0 produktów', BasketCalculator::countProductsText('abc')); } }