2018-11-27 19:19:53 +01:00
|
|
|
|
using Basket.FunctionalTests.Base;
|
|
|
|
|
using Microsoft.eShopOnContainers.Services.Basket.API;
|
2019-05-05 15:22:11 +03:00
|
|
|
|
using Microsoft.eShopOnContainers.Services.Basket.API.Infrastructure.Repositories;
|
2018-06-27 15:57:37 +02:00
|
|
|
|
using Microsoft.eShopOnContainers.Services.Basket.API.Model;
|
2018-11-27 19:19:53 +01:00
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
2018-06-27 15:57:37 +02:00
|
|
|
|
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
|
|
|
|
|
2018-06-27 15:57:37 +02:00
|
|
|
|
namespace Basket.FunctionalTests
|
|
|
|
|
{
|
2017-03-06 17:54:16 +01:00
|
|
|
|
public class RedisBasketRepositoryTests
|
2018-11-27 19:19:53 +01:00
|
|
|
|
: BasketScenarioBase
|
2017-03-06 17:54:16 +01:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task UpdateBasket_return_and_add_basket()
|
|
|
|
|
{
|
2018-11-27 19:19:53 +01:00
|
|
|
|
using (var server = CreateServer())
|
2017-03-06 17:54:16 +01:00
|
|
|
|
{
|
2018-11-27 19:19:53 +01:00
|
|
|
|
var redis = server.Host.Services.GetRequiredService<ConnectionMultiplexer>();
|
|
|
|
|
|
|
|
|
|
var redisBasketRepository = BuildBasketRepository(redis);
|
2017-03-06 17:54:16 +01:00
|
|
|
|
|
2018-11-27 19:19:53 +01:00
|
|
|
|
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId")
|
|
|
|
|
{
|
|
|
|
|
BuyerId = "buyerId",
|
|
|
|
|
Items = BuildBasketItems()
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(basket);
|
|
|
|
|
Assert.Single(basket.Items);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2017-03-06 17:54:16 +01:00
|
|
|
|
}
|
|
|
|
|
|
2017-03-07 13:46:27 +01:00
|
|
|
|
[Fact]
|
|
|
|
|
public async Task Delete_Basket_return_null()
|
|
|
|
|
{
|
|
|
|
|
|
2018-11-27 19:19:53 +01:00
|
|
|
|
using (var server = CreateServer())
|
2017-03-07 13:46:27 +01:00
|
|
|
|
{
|
2018-11-27 19:19:53 +01:00
|
|
|
|
var redis = server.Host.Services.GetRequiredService<ConnectionMultiplexer>();
|
|
|
|
|
|
|
|
|
|
var redisBasketRepository = BuildBasketRepository(redis);
|
|
|
|
|
|
|
|
|
|
var basket = await redisBasketRepository.UpdateBasketAsync(new CustomerBasket("customerId")
|
|
|
|
|
{
|
|
|
|
|
BuyerId = "buyerId",
|
|
|
|
|
Items = BuildBasketItems()
|
|
|
|
|
});
|
2017-03-07 13:46:27 +01:00
|
|
|
|
|
2018-11-27 19:19:53 +01:00
|
|
|
|
var deleteResult = await redisBasketRepository.DeleteBasketAsync("buyerId");
|
2017-03-07 13:46:27 +01:00
|
|
|
|
|
2018-11-27 19:19:53 +01:00
|
|
|
|
var result = await redisBasketRepository.GetBasketAsync(basket.BuyerId);
|
2017-03-07 13:46:27 +01:00
|
|
|
|
|
2018-11-27 19:19:53 +01:00
|
|
|
|
Assert.True(deleteResult);
|
|
|
|
|
Assert.Null(result);
|
|
|
|
|
}
|
2017-03-07 13:46:27 +01:00
|
|
|
|
}
|
2017-03-06 17:54:16 +01:00
|
|
|
|
|
2018-11-27 19:19:53 +01:00
|
|
|
|
RedisBasketRepository BuildBasketRepository(ConnectionMultiplexer connMux)
|
2017-03-06 17:54:16 +01:00
|
|
|
|
{
|
2018-06-27 15:57:37 +02:00
|
|
|
|
var loggerFactory = new LoggerFactory();
|
2018-11-27 19:19:53 +01:00
|
|
|
|
return new RedisBasketRepository(loggerFactory, connMux);
|
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
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|