From 9d2f386a7491a3ceb31e908f1070e42ee616d3b7 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Tue, 23 May 2023 14:39:49 +0300 Subject: [PATCH] Add one row guess test --- RhSolutions.Tests/CanDoGuess.cs | 19 +++++++++++++++++- .../TargetSpecificationGuessOneRow.xlsx | Bin 0 -> 11602 bytes .../TestSpecificationGuessOneRow.xlsx | Bin 0 -> 9069 bytes 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 RhSolutions.Tests/TestWorkbooks/TargetSpecificationGuessOneRow.xlsx create mode 100644 RhSolutions.Tests/TestWorkbooks/TestSpecificationGuessOneRow.xlsx diff --git a/RhSolutions.Tests/CanDoGuess.cs b/RhSolutions.Tests/CanDoGuess.cs index c801af7..8e2d71c 100644 --- a/RhSolutions.Tests/CanDoGuess.cs +++ b/RhSolutions.Tests/CanDoGuess.cs @@ -18,7 +18,7 @@ public class CanDoGuess : IDisposable } [ExcelFact(Workbook = @"..\..\..\TestWorkbooks\TestSpecificationGuess.xlsx")] - public void CanWrite() + public void CanWriteMultiplyRows() { Worksheet sourceSheet = Util.Workbook.Worksheets[1]; RhSolutionsAddIn.Configuration.SetPriceListPath(Path.GetFullPath(@"..\..\..\TestWorkbooks\TargetSpecificationGuess.xlsx")); @@ -34,6 +34,23 @@ public class CanDoGuess : IDisposable Assert.Equal(products.First().Item2.Values.Sum(), targetProducts.First().Item2.Values.Sum()); } + [ExcelFact(Workbook = @"..\..\..\TestWorkbooks\TestSpecificationGuessOneRow.xlsx")] + public void CanWriteOneRow() + { + Worksheet sourceSheet = Util.Workbook.Worksheets[1]; + RhSolutionsAddIn.Configuration.SetPriceListPath(Path.GetFullPath(@"..\..\..\TestWorkbooks\TargetSpecificationGuessOneRow.xlsx")); + var products = _reader.ReadProducts(new[] { sourceSheet }); + var _writer = new ExcelWriter(Util.Application, RhSolutionsAddIn.Configuration); + _writer.WriteProducts(products); + Worksheet targetSheet = Util.Application.ActiveWindow.ActiveSheet; + var targetProducts = _reader.ReadProducts(new[] { targetSheet }); + + Assert.Equal("TestSpecificationGuessOneRow", products.First().Item1); + Assert.Equal("TargetSpecificationGuessOneRow", targetProducts.First().Item1); + Assert.Equal(products.First().Item2.Count(), targetProducts.First().Item2.Count()); + Assert.Equal(products.First().Item2.Values.Sum(), targetProducts.First().Item2.Values.Sum()); + } + public void Dispose() { _addIn.AutoClose(); diff --git a/RhSolutions.Tests/TestWorkbooks/TargetSpecificationGuessOneRow.xlsx b/RhSolutions.Tests/TestWorkbooks/TargetSpecificationGuessOneRow.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4501c1ec167ea1c34838d6326165ab948e42bfa3 GIT binary patch literal 11602 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 B*GT{X literal 0 HcmV?d00001 diff --git a/RhSolutions.Tests/TestWorkbooks/TestSpecificationGuessOneRow.xlsx b/RhSolutions.Tests/TestWorkbooks/TestSpecificationGuessOneRow.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..723789f50255f1afbef47f022f9e1f1726a643e2 GIT binary patch literal 9069 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 H&rkmc#39Zg literal 0 HcmV?d00001