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());