| 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; | |
| } | |
| } | |
| } |