From 7a7cdaab581adc3eff9f1b69722aeaf17ff31314 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Mon, 22 May 2023 08:05:44 +0300 Subject: Add Magic reader test --- RhSolutions.Tests/CanDoMagic.cs | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 RhSolutions.Tests/CanDoMagic.cs (limited to 'RhSolutions.Tests/CanDoMagic.cs') diff --git a/RhSolutions.Tests/CanDoMagic.cs b/RhSolutions.Tests/CanDoMagic.cs new file mode 100644 index 0000000..7988724 --- /dev/null +++ b/RhSolutions.Tests/CanDoMagic.cs @@ -0,0 +1,44 @@ +using Microsoft.Extensions.DependencyInjection; +using RhSolutions.AddIn; +using System.IO; + +namespace RhSolutions.Tests; + +[ExcelTestSettings(OutOfProcess = true)] +public class CanDoMagic : IDisposable +{ + private RhSolutionsAddIn _addIn; + private ReaderFactory _readerFactory; + private IReader _reader; + + public CanDoMagic() + { + _addIn = new(); + _addIn.AutoOpen(); + _readerFactory = RhSolutionsAddIn.ServiceProvider.GetRequiredService(); + _reader = _readerFactory.GetReader("Magic"); + } + + [ExcelFact(Workbook = @"..\..\..\TestWorkbooks\TestSpecificationMagic.xlsx")] + public void CanWrite() + { + Worksheet sourceSheet = Util.Workbook.Worksheets[1]; + RhSolutionsAddIn.Configuration.SetPriceListPath(Path.GetFullPath(@"..\..\..\TestWorkbooks\TargetSpecificationMagic.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("TestSpecificationMagic", products.First().Item1); + Assert.Equal("TargetSpecificationMagic", 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(); + Util.Application.ActiveWindow.Close(SaveChanges: false); + } +} -- cgit v1.2.3