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