From d4ef078b9db6e54d74effcee77f787bf86dabd4c Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Sun, 21 May 2023 15:13:17 +0300 Subject: [PATCH] Add Not Found Writing Test --- RhSolutions.Tests/CanWriteProducts.cs | 18 ++++++++++++++++++ .../TargetSpecificationNotFound.xlsx | Bin 0 -> 9371 bytes .../TestSpecificationNotFound.xlsx | Bin 0 -> 9177 bytes 3 files changed, 18 insertions(+) create mode 100644 RhSolutions.Tests/TestWorkbooks/TargetSpecificationNotFound.xlsx create mode 100644 RhSolutions.Tests/TestWorkbooks/TestSpecificationNotFound.xlsx diff --git a/RhSolutions.Tests/CanWriteProducts.cs b/RhSolutions.Tests/CanWriteProducts.cs index accb639..9280d5f 100644 --- a/RhSolutions.Tests/CanWriteProducts.cs +++ b/RhSolutions.Tests/CanWriteProducts.cs @@ -51,6 +51,24 @@ public class CanWriteProducts : IDisposable Assert.True(Enumerable.SequenceEqual(products.First().Item2, targetProducts.First().Item2)); } + + [ExcelFact(Workbook = @"..\..\..\TestWorkbooks\TestSpecificationNotFound.xlsx")] + public void CanWriteNotFound() + { + Worksheet sourceSheet = Util.Workbook.Worksheets[1]; + RhSolutionsAddIn.Configuration.SetPriceListPath(Path.GetFullPath(@"..\..\..\TestWorkbooks\TargetSpecificationNotFound.xlsx")); + var products = _reader.ReadProducts(new[] { sourceSheet }); + var _writer = new ExcelWriter(Util.Application, RhSolutionsAddIn.Configuration); + _writer.WriteProducts(products); + Worksheet targetSheet = Util.Application.ActiveWindow.ActiveSheet; + + Assert.Equal("???", targetSheet.Range["B4"].Value2); + Assert.Contains("Молот Тора", targetSheet.Range["C4"].Value2); + Assert.Contains("15555551555", targetSheet.Range["C4"].Value2); + } + + + public void Dispose() { _addIn.AutoClose(); diff --git a/RhSolutions.Tests/TestWorkbooks/TargetSpecificationNotFound.xlsx b/RhSolutions.Tests/TestWorkbooks/TargetSpecificationNotFound.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e26fe556f94c9b1b5f731c373777d9b7906afd0f GIT binary patch literal 9371 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