From 49efdad03e5a4aefd1826a73ef0d287c3ced2722 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Thu, 18 May 2023 07:15:52 +0300 Subject: [PATCH] Add write products test --- RhSolutions.Tests/CanWriteProducts.cs | 39 ++++++++++++++++++ .../TestWorkbooks/TargetSpecifictaion.xlsx | Bin 0 -> 11604 bytes 2 files changed, 39 insertions(+) create mode 100644 RhSolutions.Tests/CanWriteProducts.cs create mode 100644 RhSolutions.Tests/TestWorkbooks/TargetSpecifictaion.xlsx diff --git a/RhSolutions.Tests/CanWriteProducts.cs b/RhSolutions.Tests/CanWriteProducts.cs new file mode 100644 index 0000000..433b9cb --- /dev/null +++ b/RhSolutions.Tests/CanWriteProducts.cs @@ -0,0 +1,39 @@ +using Microsoft.Extensions.DependencyInjection; +using RhSolutions.AddIn; +using System.IO; + +namespace RhSolutions.Tests; + +[ExcelTestSettings(OutOfProcess = true)] +public class CanWriteProducts : IDisposable +{ + private RhSolutionsAddIn _addIn; + private IReader _reader; + + public CanWriteProducts() + { + _addIn = new(); + _addIn.AutoOpen(); + _reader = RhSolutionsAddIn.ServiceProvider.GetRequiredService(); + } + + [ExcelFact(Workbook = @"TestWorkbooks\TestSpecificaion.xlsx")] + public void CanWrite() + { + Worksheet sourceSheet = Util.Workbook.Worksheets[1]; + RhSolutionsAddIn.Configuration.SetPriceListPath(Path.GetFullPath(@"..\..\..\TestWorkbooks\TargetSpecifictaion.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(products.First().Item2.Count(), targetProducts.First().Item2.Count()); + } + + public void Dispose() + { + _addIn.AutoClose(); + Util.Application.ActiveWindow.Close(SaveChanges: false); + } +} diff --git a/RhSolutions.Tests/TestWorkbooks/TargetSpecifictaion.xlsx b/RhSolutions.Tests/TestWorkbooks/TargetSpecifictaion.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ceb90d33e453ead312b262d7f0884751c9279a9b GIT binary patch literal 11604 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