Пример #1
0
        public void DecimalFormula_FormulaValueIsSetFromXmlNodeInConstructor()
        {
            // Arrange
            LoadXmlTestData("A1", "decimal", "1.3");
            // Act
            var validation = new ExcelDataValidationDecimal(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Decimal, _dataValidationNode, _namespaceManager);

            Assert.AreEqual(1.3D, validation.Formula.Value);
        }
Пример #2
0
        public void DataValidations_ShouldSetOperatorFromExistingXml()
        {
            // Arrange
            LoadXmlTestData("A1", "whole", "greaterThanOrEqual", "1");
            // Act
            var validation = new ExcelDataValidationInt(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Whole, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual(ExcelDataValidationOperator.greaterThanOrEqual, validation.Operator);
        }
Пример #3
0
        public void ListFormula_FormulasExcelFormulaIsSetFromXmlNodeInConstructor()
        {
            // Arrange
            LoadXmlTestData("A1", "list", "A1");
            // Act
            var validation = new ExcelDataValidationList(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.List, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual("A1", validation.Formula.ExcelFormula);
        }
Пример #4
0
        public void DataValidations_ShouldSetShowInputMessageFromExistingXml()
        {
            // Arrange
            LoadXmlTestData("A1", "whole", "1", false, true);
            // Act
            var validation = new ExcelDataValidationInt(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Whole, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.IsTrue(validation.ShowInputMessage ?? false);
        }
Пример #5
0
        public void DataValidations_ShouldSetErrorTitleFromExistingXml()
        {
            // Arrange
            LoadXmlTestData("A1", "whole", "1", "Prompt", "PromptTitle", "Error", "ErrorTitle");
            // Act
            var validation = new ExcelDataValidationInt(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Whole, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual("ErrorTitle", validation.ErrorTitle);
        }
Пример #6
0
        public void UidShouldBeSetOnValidations()
        {
            // Arrange
            LoadXmlTestData("A1", "decimal", "1.3");
            var id = ExcelDataValidation.NewId();
            // Act
            var validation = new ExcelDataValidationDecimal(_sheet, id, "A1", ExcelDataValidationType.Decimal, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual(id, validation.Uid);
        }
Пример #7
0
        public void CustomFormula_FormulasFormulaIsSetFromXmlNodeInConstructor()
        {
            // Arrange
            LoadXmlTestData("A1", "decimal", "A1");

            // Act
            var validation = new ExcelDataValidationCustom(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Custom, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual("A1", validation.Formula.ExcelFormula);
        }
Пример #8
0
        public void ListFormula_FormulaValueIsSetFromXmlNodeInConstructorOrderIsCorrect()
        {
            // Arrange
            LoadXmlTestData("A1", "list", "\"1,2\"");
            // Act
            var validation = new ExcelDataValidationList(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.List, _dataValidationNode, _namespaceManager);

            // Assert
            CollectionAssert.AreEquivalent(new List <string> {
                "1", "2"
            }, (ICollection)validation.Formula.Values);
        }
Пример #9
0
        public void TimeFormula_ValueIsSetFromConstructorValidateSecond()
        {
            // Arrange
            var time = new ExcelTime(0.812M);

            LoadXmlTestData("A1", "time", "0.812");

            // Act
            var formula = new ExcelDataValidationTime(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Time, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual(time.Second.Value, formula.Formula.Value.Second.Value);
        }
Пример #10
0
        public void DateTimeFormula_FormulasFormulaIsSetFromXmlNodeInConstructor()
        {
            // Arrange
            var date = DateTime.Parse("2011-01-08");

            LoadXmlTestData("A1", "decimal", "A1");

            // Act
            var validation = new ExcelDataValidationDateTime(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Decimal, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual("A1", validation.Formula.ExcelFormula);
        }
Пример #11
0
        public void DateTimeFormula_FormulaValueIsSetFromXmlNodeInConstructor()
        {
            // Arrange
            var date         = DateTime.Parse("2011-01-08");
            var dateAsString = date.ToOADate().ToString(_cultureInfo);

            LoadXmlTestData("A1", "decimal", dateAsString);
            // Act
            var validation = new ExcelDataValidationDateTime(_sheet, ExcelDataValidation.NewId(), "A1", ExcelDataValidationType.Decimal, _dataValidationNode, _namespaceManager);

            // Assert
            Assert.AreEqual(date, validation.Formula.Value);
        }
Пример #12
0
        public static void BindDataValidationForExcel(Database db, ExcelWorksheet worksheet, ExcelPackage package, int columnIndex, string enumSheetName, string enumType, int minValue, int maxValue, string columnName, ExcelDataValidation dataValidationType)
        {
            try
            {
                switch (dataValidationType)
                {
                case ExcelDataValidation.TextLength:
                    #region Text Length Data Validation
                    var textcolumn = worksheet.DataValidations.AddTextLengthValidation(ExcelRange.GetAddress(2, columnIndex, ExcelPackage.MaxRows, columnIndex));

                    textcolumn.ShowErrorMessage = true;
                    textcolumn.ErrorStyle       = ExcelDataValidationWarningStyle.stop;
                    textcolumn.ErrorTitle       = "Error";
                    textcolumn.Error            = string.Format(columnName + " must be less than or equal to {0} characters.", maxValue);
                    textcolumn.Formula.Value    = minValue;
                    textcolumn.Formula2.Value   = maxValue;
                    textcolumn.AllowBlank       = false;
                    textcolumn.ShowInputMessage = true;
                    //textcolumn.Prompt = "Please enter " + columnName;
                    break;
                    #endregion

                case ExcelDataValidation.Integer:
                    #region Integer Data Validation
                    var integercolumn = worksheet.DataValidations.AddIntegerValidation(ExcelRange.GetAddress(2, columnIndex, ExcelPackage.MaxRows, columnIndex));

                    integercolumn.ErrorStyle       = ExcelDataValidationWarningStyle.stop;
                    integercolumn.PromptTitle      = "Enter a integer value here";
                    integercolumn.Prompt           = "Value should be between 0 and 9";
                    integercolumn.ShowInputMessage = true;
                    integercolumn.ErrorTitle       = "Invalid data error";
                    integercolumn.Error            = string.Format(columnName + " must be between {0} and {1}.", 1, 9);
                    integercolumn.ShowErrorMessage = true;
                    integercolumn.Operator         = ExcelDataValidationOperator.between;
                    integercolumn.Formula.Value    = 0;
                    integercolumn.Formula2.Value   = maxValue;
                    break;

                    #endregion
                case ExcelDataValidation.DecimalValidationWithMaxLength:
                    #region Decimal Data Validation

                    var decimalcolumn2 = worksheet.DataValidations.AddDecimalValidation(ExcelRange.GetAddress(2, columnIndex, ExcelPackage.MaxRows, columnIndex));

                    decimalcolumn2.ShowErrorMessage = true;
                    decimalcolumn2.ErrorStyle       = ExcelDataValidationWarningStyle.stop;
                    decimalcolumn2.ErrorTitle       = "Invalid data error";
                    decimalcolumn2.Error            = "Value must be numeric and less than or equal to " + maxValue + " digits";
                    decimalcolumn2.Formula.Value    = minValue;
                    //decimalcolumn2.Formula.Value = 0D;

                    string maxChar = string.Empty;
                    for (int i = 0; i < maxValue; i++)
                    {
                        maxChar += "9";
                    }
                    decimalcolumn2.Operator       = ExcelDataValidationOperator.between;
                    decimalcolumn2.Formula2.Value = Convert.ToDouble(maxChar);
                    break;

                    #endregion
                default:
                    break;
                }
            }
            catch
            {
                throw;
            }
        }