Try your search with a different keyword or use * as a wildcard.
using FluentAssertions;
using Nop.Core.Domain.Orders;
using Nop.Services.Orders;
using NUnit.Framework;
namespace Nop.Tests.Nop.Services.Tests.Orders;
[TestFixture]
public class GiftCardServiceTests : ServiceTest
{
private IGiftCardService _giftCardService;
private GiftCard _giftCard1;
private GiftCard _giftCard2;
[OneTimeSetUp]
public async Task SetUp()
{
_giftCardService = GetService();
_giftCard1 = new GiftCard { Amount = 100, IsGiftCardActivated = true };
_giftCard2 = new GiftCard { Amount = 100 };
await _giftCardService.InsertGiftCardAsync(_giftCard1);
await _giftCardService.InsertGiftCardAsync(_giftCard2);
}
[OneTimeTearDown]
public async Task TearDown()
{
await _giftCardService.DeleteGiftCardAsync(_giftCard1);
await _giftCardService.DeleteGiftCardAsync(_giftCard2);
}
[Test]
public async Task CanValidateGiftCard()
{
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard1.Id, UsedWithOrderId = 1, UsedValue = 30 });
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard1.Id, UsedWithOrderId = 1, UsedValue = 20 });
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard1.Id, UsedWithOrderId = 1, UsedValue = 5 });
//valid
var isValid = await _giftCardService.IsGiftCardValidAsync(_giftCard1);
isValid.Should().BeTrue();
//mark as not active
_giftCard1.IsGiftCardActivated = false;
isValid = await _giftCardService.IsGiftCardValidAsync(_giftCard1);
isValid.Should().BeFalse();
//again active
_giftCard1.IsGiftCardActivated = true;
isValid = await _giftCardService.IsGiftCardValidAsync(_giftCard1);
isValid.Should().BeTrue();
//add usage history record
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard1.Id, UsedWithOrderId = 1, UsedValue = 1000 });
isValid = await _giftCardService.IsGiftCardValidAsync(_giftCard1);
isValid.Should().BeFalse();
}
[Test]
public async Task CanCalculateGiftCardRemainingAmount()
{
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard2.Id, UsedWithOrderId = 1, UsedValue = 30 });
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard2.Id, UsedWithOrderId = 1, UsedValue = 20 });
await _giftCardService.InsertGiftCardUsageHistoryAsync(
new GiftCardUsageHistory { GiftCardId = _giftCard2.Id, UsedWithOrderId = 1, UsedValue = 5 });
var remainingAmount = await _giftCardService.GetGiftCardRemainingAmountAsync(_giftCard2);
remainingAmount.Should().Be(45);
}
}