170 lines
6.0 KiB
C#
170 lines
6.0 KiB
C#
using AyCode.Core.Enums;
|
|
using AyCode.Core.Extensions;
|
|
using AyCode.Core.Loggers;
|
|
using FruitBank.Common;
|
|
using FruitBank.Common.Dtos;
|
|
using FruitBank.Common.Loggers;
|
|
using FruitBankHybrid.Shared.Services.SignalRs;
|
|
using Newtonsoft.Json;
|
|
using Nop.Core.Domain.Orders;
|
|
using Nop.Core.Domain.Payments;
|
|
using System.Runtime.Serialization;
|
|
using FruitBank.Common.Entities;
|
|
using Nop.Core.Domain.Common;
|
|
|
|
namespace FruitBankHybrid.Shared.Tests;
|
|
|
|
[TestClass]
|
|
public sealed class OrderClientTests
|
|
{
|
|
private const int CustomerIdAasdDsserverCom = 6; //aasd@dsserver.com
|
|
|
|
private FruitBankSignalRClient _signalRClient = null!;
|
|
|
|
[TestInitialize]
|
|
public void TestInit()
|
|
{
|
|
if (!FruitBankConstClient.BaseUrl.Contains("localhost:")) throw new Exception("NEM LOCALHOST-ON TESZTELÜNK!");
|
|
|
|
_signalRClient = new FruitBankSignalRClient(new List<IAcLogWriterClientBase>
|
|
{
|
|
//new ConsoleLogWriter(AppType.TestUnit, LogLevel.Detail, nameof(FruitBankClientTests)),
|
|
new SignaRClientLogItemWriter(AppType.TestUnit, LogLevel.Detail, nameof(FruitBankClientTests))
|
|
});
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
public async Task GetAllStockTakings()
|
|
{
|
|
var stockTakings = await _signalRClient.GetStockTakings(false);
|
|
|
|
Assert.IsNotNull(stockTakings);
|
|
Assert.IsTrue(stockTakings.Count != 0);
|
|
|
|
Assert.IsTrue(stockTakings.All(o => o.StockTakingItems.All(oi => oi.Product != null && oi.Product.Id == oi.ProductId)));
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task GetAllStockTakingItems()
|
|
{
|
|
var stockTakingItems = await _signalRClient.GetStockTakingItems();
|
|
|
|
Assert.IsNotNull(stockTakingItems);
|
|
Assert.IsTrue(stockTakingItems.Count != 0);
|
|
|
|
Assert.IsTrue(stockTakingItems.All(oi => oi.StockTaking != null && oi.Product != null && oi.Product.Id == oi.ProductId));
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task GetAllStockTakingItemById()
|
|
{
|
|
var stockTakingItem = await _signalRClient.GetStockTakingItemsById(100);
|
|
|
|
Assert.IsNotNull(stockTakingItem);
|
|
Assert.IsNotNull(stockTakingItem.Product);
|
|
Assert.IsNotNull(stockTakingItem.StockTaking);
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task GetAllOrderDtos()
|
|
{
|
|
var orderDtos = await _signalRClient.GetAllOrderDtos();
|
|
|
|
Assert.IsNotNull(orderDtos);
|
|
Assert.IsTrue(orderDtos.Count != 0);
|
|
|
|
Assert.IsTrue(orderDtos.All(o => o.OrderItemDtos.All(oi => oi.ProductDto != null && oi.ProductDto.Id == oi.ProductId)));
|
|
}
|
|
|
|
[TestMethod]
|
|
[DataRow(1)]
|
|
[DataRow(2)]
|
|
[DataRow(3)]
|
|
public async Task GetOrderDtoById(int orderId)
|
|
{
|
|
var orderDto = await _signalRClient.GetOrderDtoById(orderId);
|
|
|
|
Assert.IsNotNull(orderDto);
|
|
|
|
Assert.IsTrue(orderDto.OrderStatusId >= 10);
|
|
Assert.IsTrue(orderDto.CustomOrderNumber == orderId.ToString());
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task GetPendingOrderDtos()
|
|
{
|
|
var initialCount = 28;
|
|
List<OrderDto>? pendingOrderDtos = (await _signalRClient.GetPendingOrderDtos())?.Take(initialCount).ToList();
|
|
|
|
Assert.IsNotNull(pendingOrderDtos);
|
|
|
|
// Másolat létrehozása a frissítendő adatok generálásához
|
|
List<OrderDto>? pendingOrderDtos2 = pendingOrderDtos.ToList();
|
|
|
|
Assert.IsNotNull(pendingOrderDtos2);
|
|
Assert.AreEqual(initialCount, pendingOrderDtos2.Count);
|
|
|
|
// ÚJ BEÁLLÍTÁSOK A RESOLVER-REL ÉS CONTEXT-EL
|
|
//var settings = new JsonSerializerSettings
|
|
//{
|
|
// ContractResolver = new UnifiedMergeContractResolver(),
|
|
// ObjectCreationHandling = ObjectCreationHandling.Replace,
|
|
// Context = new StreamingContext(StreamingContextStates.All, new Dictionary<object, object>()),
|
|
|
|
// // Alapvető beállítások
|
|
// PreserveReferencesHandling = PreserveReferencesHandling.Objects,
|
|
// ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
|
// NullValueHandling = NullValueHandling.Ignore,
|
|
//};
|
|
|
|
var dtNow = DateTime.UtcNow;
|
|
|
|
// Eredeti objektum referenciájának eltárolása
|
|
var orderDto1 = pendingOrderDtos[0];
|
|
|
|
// Frissítjük a másolatot
|
|
pendingOrderDtos2[0].PaidDateUtc = dtNow;
|
|
pendingOrderDtos2[0].GenericAttributes[0].CreatedOrUpdatedDateUTC = dtNow;
|
|
|
|
pendingOrderDtos2.CopyTo(pendingOrderDtos);
|
|
// Szerializálás a Merge Resolverrel
|
|
//var json = pendingOrderDtos2.ToJson(settings);
|
|
|
|
//Assert.IsTrue(json.Contains("$id"));
|
|
//Assert.IsTrue(json.Contains("$ref"));
|
|
|
|
//pendingOrderDtos.DeepPopulateWithMerge(json, settings);
|
|
|
|
Assert.IsTrue(pendingOrderDtos.Count == pendingOrderDtos2.Count, $"A listák méretének egyeznie kell: {pendingOrderDtos.Count} != {pendingOrderDtos2.Count}");
|
|
|
|
Assert.IsTrue(orderDto1.PaidDateUtc == dtNow, "A PaidDateUtc mezőnek frissülnie kellett a Merge során.");
|
|
Assert.IsTrue(orderDto1.GenericAttributes[0].CreatedOrUpdatedDateUTC == dtNow, "A beágyazott GenericAttribute dátumának frissülnie kellett.");
|
|
|
|
Assert.IsTrue(pendingOrderDtos.All(o => o.OrderStatus == OrderStatus.Pending));
|
|
Assert.IsTrue(pendingOrderDtos.Count != 0);
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task GetPendingOrderDtosForMeasuring()
|
|
{
|
|
var orderDtosForMeasuring = await _signalRClient.GetPendingOrderDtosForMeasuring(9999);
|
|
|
|
Assert.IsNotNull(orderDtosForMeasuring);
|
|
//Assert.IsTrue(orderDtosForMeasuring.Any(x=>x.Id ==51));
|
|
Assert.IsTrue(orderDtosForMeasuring.All(o => o.PaymentStatus < PaymentStatus.Paid));
|
|
Assert.IsTrue(orderDtosForMeasuring.Count != 0);
|
|
}
|
|
|
|
[TestMethod]
|
|
[DataRow(new[] { 1, 2, 4, 7 })]
|
|
public async Task GetOrderDtoByIds(int[] orderIds)
|
|
{
|
|
var orderDtoList = await _signalRClient.GetAllOrderDtoByIds(orderIds);
|
|
|
|
Assert.IsNotNull(orderDtoList);
|
|
|
|
Assert.IsTrue(orderDtoList.Count == orderIds.Length);
|
|
Assert.IsTrue(orderDtoList.All(x => orderIds.Contains(x.Id)));
|
|
}
|
|
} |