DynamicWriterTests.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using ClosedXML.Excel;
  2. using ExcelORM;
  3. namespace ExcelORMTests;
  4. public class DynamicWriterTests
  5. {
  6. private const string DifficultFile = "testFiles/dynamicDifficult.xlsx";
  7. private const string MultipleSheetsFile = "testFiles/multipleSheets.xlsx";
  8. [Fact]
  9. public void Write()
  10. {
  11. var testFile = Path.GetRandomFileName();
  12. testFile = Path.ChangeExtension(testFile, "xlsx");
  13. using var reader = new ExcelDynamicReader(DifficultFile);
  14. var results = reader.Read().ToArray();
  15. Assert.NotEmpty(results);
  16. using var writer = new ExcelDynamicWriter();
  17. writer.Write(results);
  18. writer.SaveAs(testFile);
  19. using var savedReader = new ExcelDynamicReader(testFile);
  20. var savedResults = savedReader.Read().ToArray();
  21. Assert.NotEmpty(savedResults);
  22. Assert.True(results.First().SequenceEqual(savedResults.First()));
  23. Assert.True(results.Last().SequenceEqual(savedResults.Last()));
  24. File.Delete(testFile);
  25. }
  26. [Fact]
  27. public void WriteWithAppend()
  28. {
  29. var testFile = Path.GetRandomFileName();
  30. testFile = Path.ChangeExtension(testFile, "xlsx");
  31. using var reader = new ExcelDynamicReader(DifficultFile);
  32. var results = reader.Read().ToArray();
  33. Assert.NotEmpty(results);
  34. using var writer = new ExcelDynamicWriter();
  35. writer.Write(results);
  36. writer.SaveAs(testFile);
  37. using var writerAppend = new ExcelDynamicWriter();
  38. writer.Write(results, append: true);
  39. writer.SaveAs(testFile);
  40. using var savedReader = new ExcelDynamicReader(testFile);
  41. var savedResults = savedReader.Read().ToArray();
  42. Assert.NotEmpty(savedResults);
  43. Assert.True(results.First().SequenceEqual(savedResults.First()));
  44. Assert.True(results.Last().SequenceEqual(savedResults.Last()));
  45. Assert.Equal(results.Length * 2, savedResults.Length);
  46. File.Delete(testFile);
  47. }
  48. [Fact]
  49. public void WriteAll()
  50. {
  51. var testFile = Path.GetRandomFileName();
  52. testFile = Path.ChangeExtension(testFile, "xlsx");
  53. using var reader = new ExcelDynamicReader(MultipleSheetsFile);
  54. var results = reader.ReadAll().ToArray();
  55. Assert.NotEmpty(results);
  56. using var writer = new ExcelDynamicWriter();
  57. writer.WriteAll(results);
  58. writer.SaveAs(testFile);
  59. using var savedReader = new ExcelDynamicReader(testFile);
  60. var savedResults = savedReader.ReadAll().ToArray();
  61. Assert.NotEmpty(savedResults);
  62. Assert.Equal(results.First().Name, savedResults.First().Name);
  63. Assert.Equal(results.First().Cells?.Count(), savedResults.First().Cells?.Count());
  64. Assert.Equal(results.Last().Name, savedResults.Last().Name);
  65. Assert.Equal(results.Last().Cells?.Count(), savedResults.Last().Cells?.Count());
  66. File.Delete(testFile);
  67. }
  68. [Fact]
  69. public void WriteReadInMemory()
  70. {
  71. using var readWorkbook = new XLWorkbook(DifficultFile);
  72. using var reader = new ExcelDynamicReader(readWorkbook);
  73. var results = reader.Read().ToArray();
  74. Assert.NotEmpty(results);
  75. using var writeWorkbook = new XLWorkbook();
  76. using var writer = new ExcelDynamicWriter(writeWorkbook);
  77. writer.Write(results);
  78. using var savedReader = new ExcelDynamicReader(writeWorkbook);
  79. var savedResults = savedReader.Read().ToArray();
  80. Assert.NotEmpty(savedResults);
  81. Assert.True(results.First().SequenceEqual(savedResults.First()));
  82. Assert.True(results.Last().SequenceEqual(savedResults.Last()));
  83. }
  84. }