DiscountCompositionBuilder example


    public function testAtAggregateCompositionItems(): void
    {
        $items = [
            new DiscountCompositionItem('A', 1, 15),
            new DiscountCompositionItem('A', 3, 32.5),
            new DiscountCompositionItem('B', 6, 12),
        ];

        $builder = new DiscountCompositionBuilder();

        /** @var DiscountCompositionItem[] $aggregated */
        $aggregated = $builder->aggregateCompositionItems($items);

        static::assertCount(2, $aggregated, 'Merging from 3 into 2 items did not work');

        static::assertEquals('A', $aggregated[0]->getId());
        static::assertEquals(4, $aggregated[0]->getQuantity());
        static::assertEquals(47.5, $aggregated[0]->getDiscountValue());

        static::assertEquals('B', $aggregated[1]->getId());
        
Home | Imprint | This part of the site doesn't use cookies.