blob: 470c578cda036a77727578f340f983bd6e127fbe [file] [log] [blame]
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());
}
}
}
}