RhSolutions-AddIn/RhSolutions.Tests/CanReadProducts.cs
2023-04-20 09:37:07 +03:00

63 lines
1.9 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using RhSolutions.AddIn;
namespace RhSolutions.Tests;
[ExcelTestSettings(OutOfProcess = true)]
public class CanReadProducts : IDisposable
{
private RhSolutionsAddIn _addIn;
private IReader _reader;
private Workbook _testWorkbook;
public CanReadProducts()
{
_addIn = new();
_testWorkbook = Util.Application.Workbooks.Add();
_addIn.AutoOpen();
_reader = RhSolutionsAddIn.ServiceProvider.GetRequiredService<IReader>();
}
[ExcelFact]
public void CanReadRange()
{
Worksheet worksheet = _testWorkbook.Sheets[1];
worksheet.Range["A1"].Value = "11600011001";
worksheet.Range["A2"].Value = "11600011001";
worksheet.Range["A3"].Value = "160002-001";
worksheet.Range["A4"].Value = "Fuzz";
worksheet.Range["B1"].Value = 10;
worksheet.Range["B2"].Value = 10;
worksheet.Range["B3"].Value = 5;
worksheet.Range["B5"].Value = 1000_000;
worksheet.Range["A6"].Value = "111111-111";
worksheet.Range["B6"].Value = 100;
Range testRange = worksheet.Range["A1:B6"];
var products = _reader.ReadProducts(testRange);
Assert.NotNull(products);
Assert.NotEmpty(products);
Assert.Equal("11600011001", products.First().Key.ProductSku);
Assert.Equal(20.0, products.First().Value);
Assert.Equal(125.0, products.Sum(p => p.Value));
Assert.Equal(3, products.Count());
}
[ExcelFact(Workbook = @"TestWorkbooks\Specifications\HeatingFloor.xlsx")]
public void CanReadWorkbook()
{
Worksheet worksheet = Util.Workbook.Worksheets[1];
var products = _reader.ReadProducts(new[] { worksheet });
Assert.NotNull(products);
Assert.NotEmpty(products);
}
public void Dispose()
{
_addIn.AutoClose();
Util.Application.ActiveWindow.Close(SaveChanges: false);
}
}