83 lines
2.5 KiB
C#
Raw Normal View History

using Microsoft.eShopOnContainers.Services.Basket.API;
using Microsoft.eShopOnContainers.Services.Basket.API.Model;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Moq;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Xunit;
2017-03-06 17:54:16 +01:00
namespace Basket.FunctionalTests
{
2017-03-06 17:54:16 +01:00
public class RedisBasketRepositoryTests
{
private Mock<IOptionsSnapshot<BasketSettings>> _optionsMock;
public RedisBasketRepositoryTests()
{
_optionsMock = new Mock<IOptionsSnapshot<BasketSettings>>();
}
[Fact]
public async Task UpdateBasket_return_and_add_basket()
{
var redisBasketRepository = BuildBasketRepository();
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId")
2017-03-06 17:54:16 +01:00
{
BuyerId = "buyerId",
Items = BuildBasketItems()
});
Assert.NotNull(basket);
2017-11-03 12:14:59 -07:00
Assert.Single(basket.Items);
2017-03-06 17:54:16 +01:00
}
[Fact]
public async Task Delete_Basket_return_null()
{
var redisBasketRepository = BuildBasketRepository();
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId")
{
BuyerId = "buyerId",
Items = BuildBasketItems()
});
var deleteResult = await redisBasketRepository.DeleteBasketAsync("buyerId");
var result = await redisBasketRepository.GetBasketAsync(basket.BuyerId);
Assert.True(deleteResult);
Assert.Null(result);
}
2017-03-06 17:54:16 +01:00
RedisBasketRepository BuildBasketRepository()
{
var loggerFactory = new LoggerFactory();
var configuration = ConfigurationOptions.Parse("127.0.0.1", true);
configuration.ResolveDns = true;
return new RedisBasketRepository(loggerFactory, ConnectionMultiplexer.Connect(configuration));
2017-03-06 17:54:16 +01:00
}
List<BasketItem> BuildBasketItems()
{
return new List<BasketItem>()
{
new BasketItem()
{
Id = "basketId",
PictureUrl = "pictureurl",
ProductId = "productId",
ProductName = "productName",
Quantity = 1,
UnitPrice = 1
}
};
}
}
}