aboutsummaryrefslogtreecommitdiff
path: root/RhSolutions.Tests/CanFillSleeves.cs
blob: 2fed50c016980ad8d7e50448ffd252331d83d3e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using RhSolutions.AddIn;

namespace RhSolutions.Tests;

[ExcelTestSettings(OutOfProcess = true)]
public class CanFillSleeves : IDisposable
{
    private RhSolutionsAddIn _addIn;
    private IFittingsCalculator _calculator;
    private IReader _reader;
    private IWriter _writer;
    private Worksheet _worksheet;

    public CanFillSleeves()
    {
        Environment.SetEnvironmentVariable("ISTESTING", "true");
        _addIn = new();
        _addIn.AutoOpen();
        _calculator = new SleevesCalculator();
        _reader = new ExcelReader(Util.Application, RhSolutionsAddIn.Configuration);
        _writer = new CurrentPriceWriter(Util.Application, RhSolutionsAddIn.Configuration);
        _worksheet = Util.Workbook.Worksheets[1];
    }

    [ExcelFact(Workbook = @"..\..\..\TestWorkbooks\TestSpecificationSleeves.xlsx")]
    public void CanCalculateSleeves()
    {
        var products = _reader.ReadProducts(new[] { _worksheet });
        var sleeves = _calculator.Calculate(products.First().Item2);
        _writer.WriteProducts(sleeves);

        Assert.Equal(22, _worksheet.Range["E2"].Value);
        Assert.Equal(12, _worksheet.Range["E3"].Value);
        Assert.Equal(5, _worksheet.Range["E4"].Value);
        Assert.Equal(6, _worksheet.Range["E5"].Value);
        Assert.Equal(3, _worksheet.Range["E6"].Value);
        Assert.Equal(3, _worksheet.Range["E7"].Value);
        Assert.Equal(2, _worksheet.Range["E8"].Value);
        Assert.Equal(2, _worksheet.Range["E9"].Value);
        Assert.Equal(1, _worksheet.Range["E10"].Value);
        Assert.Equal(3, _worksheet.Range["E11"].Value);
        Assert.Equal(4, _worksheet.Range["E12"].Value);
    }

    public void Dispose()
    {
        _addIn.AutoClose();
    }
}