| using System; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml; |
| using OfficeOpenXml.FormulaParsing; |
| using OfficeOpenXml.FormulaParsing.Excel.Functions.Database; |
| |
| namespace EPPlusTest.FormulaParsing.Excel.Functions.Database |
| { |
| [TestClass] |
| public class ExcelDatabaseTests |
| { |
| [TestMethod] |
| public void DatabaseShouldReadFields() |
| { |
| using (var package = new ExcelPackage()) |
| { |
| var database = GetDatabase(package); |
| |
| Assert.AreEqual(2, database.Fields.Count(), "count was not 2"); |
| Assert.AreEqual("col1", database.Fields.First().FieldName, "first fieldname was not 'col1'"); |
| Assert.AreEqual("col2", database.Fields.Last().FieldName, "last fieldname was not 'col12'"); |
| } |
| } |
| |
| [TestMethod] |
| public void HasMoreRowsShouldBeTrueWhenInitialized() |
| { |
| using (var package = new ExcelPackage()) |
| { |
| var database = GetDatabase(package); |
| |
| Assert.IsTrue(database.HasMoreRows); |
| } |
| |
| } |
| |
| [TestMethod] |
| public void HasMoreRowsShouldBeFalseWhenLastRowIsRead() |
| { |
| using (var package = new ExcelPackage()) |
| { |
| var database = GetDatabase(package); |
| database.Read(); |
| |
| Assert.IsFalse(database.HasMoreRows); |
| } |
| |
| } |
| |
| [TestMethod] |
| public void DatabaseShouldReadFieldsInRow() |
| { |
| using (var package = new ExcelPackage()) |
| { |
| var database = GetDatabase(package); |
| var row = database.Read(); |
| |
| Assert.AreEqual(1, row["col1"]); |
| Assert.AreEqual(2, row["col2"]); |
| } |
| |
| } |
| |
| private static ExcelDatabase GetDatabase(ExcelPackage package) |
| { |
| var provider = new EpplusExcelDataProvider(package); |
| var sheet = package.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Value = "col1"; |
| sheet.Cells["A2"].Value = 1; |
| sheet.Cells["B1"].Value = "col2"; |
| sheet.Cells["B2"].Value = 2; |
| var database = new ExcelDatabase(provider, "A1:B2"); |
| return database; |
| } |
| } |
| } |