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