Add Tests
This commit is contained in:
parent
99f46e089c
commit
93195a9cc9
63
RhSolutions.Tests/CanReadProducts.cs
Normal file
63
RhSolutions.Tests/CanReadProducts.cs
Normal file
@ -0,0 +1,63 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using RhSolutions.AddIn;
|
||||
|
||||
namespace RhSolutions.Tests;
|
||||
|
||||
[ExcelTestSettings(OutOfProcess = true)]
|
||||
public class CanReadProducts : IDisposable
|
||||
{
|
||||
private RhSolutionsAddIn _addIn;
|
||||
private IExcelReader _reader;
|
||||
private Workbook _testWorkbook;
|
||||
|
||||
public CanReadProducts()
|
||||
{
|
||||
_addIn = new();
|
||||
_testWorkbook = Util.Application.Workbooks.Add();
|
||||
_addIn.AutoOpen();
|
||||
_reader = RhSolutionsAddIn.ServiceProvider.GetRequiredService<IExcelReader>();
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
}
|
@ -27,6 +27,9 @@
|
||||
<None Update="TestWorkbooks\ExcelTableTest.xlsx">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="TestWorkbooks\Specifications\HeatingFloor.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
BIN
RhSolutions.Tests/TestWorkbooks/Specifications/HeatingFloor.xlsx
Normal file
BIN
RhSolutions.Tests/TestWorkbooks/Specifications/HeatingFloor.xlsx
Normal file
Binary file not shown.
@ -1,10 +1,17 @@
|
||||
namespace RhSolutions.Tests;
|
||||
using RhSolutions.AddIn;
|
||||
using RhSolutions.Tools;
|
||||
|
||||
namespace RhSolutions.Tests;
|
||||
|
||||
[ExcelTestSettings(OutOfProcess = true)]
|
||||
public class WorkbookValidationTests : IDisposable
|
||||
{
|
||||
private readonly RhSolutionsAddIn _addIn;
|
||||
|
||||
public WorkbookValidationTests()
|
||||
{
|
||||
_addIn = new RhSolutionsAddIn();
|
||||
_addIn.AutoOpen();
|
||||
Util.Application.Workbooks.Add();
|
||||
}
|
||||
|
||||
@ -12,18 +19,19 @@ public class WorkbookValidationTests : IDisposable
|
||||
public void WorksheetIsCorrect()
|
||||
{
|
||||
Worksheet worksheet = Util.Workbook.Sheets[1];
|
||||
Assert.True(worksheet.IsRehauSource());
|
||||
Assert.True(worksheet.IsValidSource());
|
||||
}
|
||||
|
||||
[ExcelFact(Workbook = @"TestWorkbooks\EmptyWorkbook.xlsx")]
|
||||
public void EmptyWorkbookIsNotCorrect()
|
||||
{
|
||||
Worksheet worksheet = Util.Workbook.Sheets[1];
|
||||
Assert.False(worksheet.IsRehauSource());
|
||||
Assert.False(worksheet.IsValidSource());
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_addIn.AutoClose();
|
||||
Util.Application.ActiveWindow.Close(SaveChanges: false);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user