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