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