| 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 CriteriaTests | 
 |     { | 
 |         [TestMethod] | 
 |         public void CriteriaShouldReadFieldsAndValues() | 
 |         { | 
 |             using (var package = new ExcelPackage()) | 
 |             { | 
 |                 var sheet = package.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Value = "Crit1"; | 
 |                 sheet.Cells["B1"].Value = "Crit2"; | 
 |                 sheet.Cells["A2"].Value = 1; | 
 |                 sheet.Cells["B2"].Value = 2; | 
 |  | 
 |                 var provider = new EpplusExcelDataProvider(package); | 
 |  | 
 |                 var criteria = new ExcelDatabaseCriteria(provider, "A1:B2"); | 
 |  | 
 |                 Assert.AreEqual(2, criteria.Items.Count); | 
 |                 Assert.AreEqual("crit1", criteria.Items.Keys.First().ToString()); | 
 |                 Assert.AreEqual("crit2", criteria.Items.Keys.Last().ToString()); | 
 |                 Assert.AreEqual(1, criteria.Items.Values.First()); | 
 |                 Assert.AreEqual(2, criteria.Items.Values.Last()); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CriteriaShouldIgnoreEmptyFields1() | 
 |         { | 
 |             using (var package = new ExcelPackage()) | 
 |             { | 
 |                 var sheet = package.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Value = "Crit1"; | 
 |                 sheet.Cells["B1"].Value = "Crit2"; | 
 |                 sheet.Cells["A2"].Value = 1; | 
 |  | 
 |                 var provider = new EpplusExcelDataProvider(package); | 
 |  | 
 |                 var criteria = new ExcelDatabaseCriteria(provider, "A1:B2"); | 
 |  | 
 |                 Assert.AreEqual(1, criteria.Items.Count); | 
 |                 Assert.AreEqual("crit1", criteria.Items.Keys.First().ToString()); | 
 |                 Assert.AreEqual(1, criteria.Items.Values.Last()); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CriteriaShouldIgnoreEmptyFields2() | 
 |         { | 
 |             using (var package = new ExcelPackage()) | 
 |             { | 
 |                 var sheet = package.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Value = "Crit1"; | 
 |                 sheet.Cells["A2"].Value = 1; | 
 |  | 
 |                 var provider = new EpplusExcelDataProvider(package); | 
 |  | 
 |                 var criteria = new ExcelDatabaseCriteria(provider, "A1:B2"); | 
 |  | 
 |                 Assert.AreEqual(1, criteria.Items.Count); | 
 |                 Assert.AreEqual("crit1", criteria.Items.Keys.First().ToString()); | 
 |                 Assert.AreEqual(1, criteria.Items.Values.Last()); | 
 |             } | 
 |         } | 
 |  | 
 |     } | 
 | } |