From 3632362917c7d11a883966bd003aa1c5c46d3839 Mon Sep 17 00:00:00 2001 From: Tatarincev Eugeney Date: Wed, 13 Nov 2024 10:37:49 +0200 Subject: [PATCH] Calculate cart totals before promotion evaluation (#18) * Calculate card totals before promotion evaluation * fix uint test --- src/VirtoCommerce.XCart.Core/CartAggregate.cs | 2 ++ .../VirtoCommerce.XCart.Tests/Aggregates/CartAggregateTests.cs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/VirtoCommerce.XCart.Core/CartAggregate.cs b/src/VirtoCommerce.XCart.Core/CartAggregate.cs index 5af557e..685b02f 100644 --- a/src/VirtoCommerce.XCart.Core/CartAggregate.cs +++ b/src/VirtoCommerce.XCart.Core/CartAggregate.cs @@ -804,6 +804,8 @@ public virtual async Task RecalculateAsync() await UpdateOrganizationName(); + _cartTotalsCalculator.CalculateTotals(Cart); + var promotionEvalResult = await EvaluatePromotionsAsync(); await this.ApplyRewardsAsync(promotionEvalResult.Rewards); diff --git a/tests/VirtoCommerce.XCart.Tests/Aggregates/CartAggregateTests.cs b/tests/VirtoCommerce.XCart.Tests/Aggregates/CartAggregateTests.cs index ca38eac..dc3e74f 100644 --- a/tests/VirtoCommerce.XCart.Tests/Aggregates/CartAggregateTests.cs +++ b/tests/VirtoCommerce.XCart.Tests/Aggregates/CartAggregateTests.cs @@ -820,7 +820,7 @@ public async Task RecalculateAsync_HasPromoRewards_CalculateTotalsCalled() var result = await cartAggregate.RecalculateAsync(); // Assert - _shoppingCartTotalsCalculatorMock.Verify(x => x.CalculateTotals(It.Is(x => x == cartAggregate.Cart)), Times.Once); + _shoppingCartTotalsCalculatorMock.Verify(x => x.CalculateTotals(It.Is(x => x == cartAggregate.Cart)), Times.Exactly(2)); } #endregion RecalculateAsync