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