blob: 616585a126d4880b846cb7d9dba145cd2b1ae36c [file] [log] [blame]
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OfficeOpenXml.DataValidation;
namespace EPPlusTest.DataValidation
{
[TestClass]
public class ValidationCollectionTests : ValidationTestBase
{
[TestInitialize]
public void Setup()
{
SetupTestData();
}
[TestCleanup]
public void Cleanup()
{
CleanupTestData();
}
[TestMethod, ExpectedException(typeof(ArgumentNullException))]
public void ExcelDataValidationCollection_AddDecimal_ShouldThrowWhenAddressIsNullOrEmpty()
{
// Act
_sheet.DataValidations.AddDecimalValidation(string.Empty);
}
[TestMethod, ExpectedException(typeof(InvalidOperationException))]
public void ExcelDataValidationCollection_AddDecimal_ShouldThrowWhenNewValidationCollidesWithExisting()
{
// Act
_sheet.DataValidations.AddDecimalValidation("A1");
_sheet.DataValidations.AddDecimalValidation("A1");
}
[TestMethod, ExpectedException(typeof(InvalidOperationException))]
public void ExcelDataValidationCollection_AddInteger_ShouldThrowWhenNewValidationCollidesWithExisting()
{
// Act
_sheet.DataValidations.AddIntegerValidation("A1");
_sheet.DataValidations.AddIntegerValidation("A1");
}
[TestMethod, ExpectedException(typeof(InvalidOperationException))]
public void ExcelDataValidationCollection_AddTextLength_ShouldThrowWhenNewValidationCollidesWithExisting()
{
// Act
_sheet.DataValidations.AddTextLengthValidation("A1");
_sheet.DataValidations.AddTextLengthValidation("A1");
}
[TestMethod, ExpectedException(typeof(InvalidOperationException))]
public void ExcelDataValidationCollection_AddDateTime_ShouldThrowWhenNewValidationCollidesWithExisting()
{
// Act
_sheet.DataValidations.AddDateTimeValidation("A1");
_sheet.DataValidations.AddDateTimeValidation("A1");
}
[TestMethod]
public void ExcelDataValidationCollection_Index_ShouldReturnItemAtIndex()
{
// Arrange
_sheet.DataValidations.AddDateTimeValidation("A1");
_sheet.DataValidations.AddDateTimeValidation("A2");
_sheet.DataValidations.AddDateTimeValidation("B1");
// Act
var result = _sheet.DataValidations[1];
// Assert
Assert.AreEqual("A2", result.Address.Address);
}
[TestMethod]
public void ExcelDataValidationCollection_FindAll_ShouldReturnValidationInColumnAonly()
{
// Arrange
_sheet.DataValidations.AddDateTimeValidation("A1");
_sheet.DataValidations.AddDateTimeValidation("A2");
_sheet.DataValidations.AddDateTimeValidation("B1");
// Act
var result = _sheet.DataValidations.FindAll(x => x.Address.Address.StartsWith("A"));
// Assert
Assert.AreEqual(2, result.Count());
}
[TestMethod]
public void ExcelDataValidationCollection_Find_ShouldReturnFirstMatchOnly()
{
// Arrange
_sheet.DataValidations.AddDateTimeValidation("A1");
_sheet.DataValidations.AddDateTimeValidation("A2");
// Act
var result = _sheet.DataValidations.Find(x => x.Address.Address.StartsWith("A"));
// Assert
Assert.AreEqual("A1", result.Address.Address);
}
[TestMethod]
public void ExcelDataValidationCollection_Clear_ShouldBeEmpty()
{
// Arrange
_sheet.DataValidations.AddDateTimeValidation("A1");
// Act
_sheet.DataValidations.Clear();
// Assert
Assert.AreEqual(0, _sheet.DataValidations.Count);
}
[TestMethod]
public void ExcelDataValidationCollection_RemoveAll_ShouldRemoveMatchingEntries()
{
// Arrange
_sheet.DataValidations.AddIntegerValidation("A1");
_sheet.DataValidations.AddIntegerValidation("A2");
_sheet.DataValidations.AddIntegerValidation("B1");
// Act
_sheet.DataValidations.RemoveAll(x => x.Address.Address.StartsWith("B"));
// Assert
Assert.AreEqual(2, _sheet.DataValidations.Count);
}
}
}