|
|
@ -1,5 +1,7 @@ |
|
|
|
using Microsoft.eShopOnContainers.Services.Basket.API; |
|
|
|
using Basket.FunctionalTests.Base; |
|
|
|
using Microsoft.eShopOnContainers.Services.Basket.API; |
|
|
|
using Microsoft.eShopOnContainers.Services.Basket.API.Model; |
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
using Microsoft.Extensions.Logging; |
|
|
|
using Microsoft.Extensions.Options; |
|
|
|
using Moq; |
|
|
@ -13,54 +15,60 @@ using Xunit; |
|
|
|
namespace Basket.FunctionalTests |
|
|
|
{ |
|
|
|
public class RedisBasketRepositoryTests |
|
|
|
: BasketScenarioBase |
|
|
|
{ |
|
|
|
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") |
|
|
|
using (var server = CreateServer()) |
|
|
|
{ |
|
|
|
BuyerId = "buyerId", |
|
|
|
Items = BuildBasketItems() |
|
|
|
}); |
|
|
|
var redis = server.Host.Services.GetRequiredService<ConnectionMultiplexer>(); |
|
|
|
|
|
|
|
var redisBasketRepository = BuildBasketRepository(redis); |
|
|
|
|
|
|
|
Assert.NotNull(basket); |
|
|
|
Assert.Single(basket.Items); |
|
|
|
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId") |
|
|
|
{ |
|
|
|
BuyerId = "buyerId", |
|
|
|
Items = BuildBasketItems() |
|
|
|
}); |
|
|
|
|
|
|
|
Assert.NotNull(basket); |
|
|
|
Assert.Single(basket.Items); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task Delete_Basket_return_null() |
|
|
|
{ |
|
|
|
var redisBasketRepository = BuildBasketRepository(); |
|
|
|
|
|
|
|
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId") |
|
|
|
using (var server = CreateServer()) |
|
|
|
{ |
|
|
|
BuyerId = "buyerId", |
|
|
|
Items = BuildBasketItems() |
|
|
|
}); |
|
|
|
var redis = server.Host.Services.GetRequiredService<ConnectionMultiplexer>(); |
|
|
|
|
|
|
|
var redisBasketRepository = BuildBasketRepository(redis); |
|
|
|
|
|
|
|
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId") |
|
|
|
{ |
|
|
|
BuyerId = "buyerId", |
|
|
|
Items = BuildBasketItems() |
|
|
|
}); |
|
|
|
|
|
|
|
var deleteResult = await redisBasketRepository.DeleteBasketAsync("buyerId"); |
|
|
|
var deleteResult = await redisBasketRepository.DeleteBasketAsync("buyerId"); |
|
|
|
|
|
|
|
var result = await redisBasketRepository.GetBasketAsync(basket.BuyerId); |
|
|
|
var result = await redisBasketRepository.GetBasketAsync(basket.BuyerId); |
|
|
|
|
|
|
|
Assert.True(deleteResult); |
|
|
|
Assert.Null(result); |
|
|
|
Assert.True(deleteResult); |
|
|
|
Assert.Null(result); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
RedisBasketRepository BuildBasketRepository() |
|
|
|
RedisBasketRepository BuildBasketRepository(ConnectionMultiplexer connMux) |
|
|
|
{ |
|
|
|
var loggerFactory = new LoggerFactory(); |
|
|
|
var configuration = ConfigurationOptions.Parse("127.0.0.1", true); |
|
|
|
configuration.ResolveDns = true; |
|
|
|
return new RedisBasketRepository(loggerFactory, ConnectionMultiplexer.Connect(configuration)); |
|
|
|
return new RedisBasketRepository(loggerFactory, connMux); |
|
|
|
} |
|
|
|
|
|
|
|
List<BasketItem> BuildBasketItems() |
|
|
|