| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml; |
| using System.IO; |
| using OfficeOpenXml.DataValidation; |
| using System.Xml; |
| using System.Globalization; |
| |
| namespace EPPlusTest.DataValidation |
| { |
| public abstract class ValidationTestBase |
| { |
| protected ExcelPackage _package; |
| protected ExcelWorksheet _sheet; |
| protected XmlNode _dataValidationNode; |
| protected XmlNamespaceManager _namespaceManager; |
| protected CultureInfo _cultureInfo; |
| |
| public void SetupTestData() |
| { |
| _package = new ExcelPackage(); |
| _sheet = _package.Workbook.Worksheets.Add("test"); |
| _cultureInfo = new CultureInfo("en-US"); |
| } |
| |
| public void CleanupTestData() |
| { |
| _package = null; |
| _sheet = null; |
| _namespaceManager = null; |
| } |
| |
| protected string GetTestOutputPath(string fileName) |
| { |
| return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), fileName); |
| } |
| |
| protected void SaveTestOutput(string fileName) |
| { |
| var path = GetTestOutputPath(fileName); |
| if (File.Exists(path)) |
| { |
| File.Delete(path); |
| } |
| _package.SaveAs(new FileInfo(path)); |
| } |
| |
| protected void LoadXmlTestData(string address, string validationType, string formula1Value) |
| { |
| var xmlDoc = new XmlDocument(); |
| _namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable); |
| _namespaceManager.AddNamespace("d", "urn:a"); |
| var sb = new StringBuilder(); |
| sb.AppendFormat("<dataValidation xmlns:d=\"urn:a\" type=\"{0}\" sqref=\"{1}\">", validationType, address); |
| sb.AppendFormat("<d:formula1>{0}</d:formula1>", formula1Value); |
| sb.Append("</dataValidation>"); |
| xmlDoc.LoadXml(sb.ToString()); |
| _dataValidationNode = xmlDoc.DocumentElement; |
| } |
| |
| protected void LoadXmlTestData(string address, string validationType, string operatorName, string formula1Value) |
| { |
| var xmlDoc = new XmlDocument(); |
| _namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable); |
| _namespaceManager.AddNamespace("d", "urn:a"); |
| var sb = new StringBuilder(); |
| sb.AppendFormat("<dataValidation xmlns:d=\"urn:a\" type=\"{0}\" sqref=\"{1}\" operator=\"{2}\">", validationType, address, operatorName); |
| sb.AppendFormat("<d:formula1>{0}</d:formula1>", formula1Value); |
| sb.Append("</dataValidation>"); |
| xmlDoc.LoadXml(sb.ToString()); |
| _dataValidationNode = xmlDoc.DocumentElement; |
| } |
| |
| protected void LoadXmlTestData(string address, string validationType, string formula1Value, bool showErrorMsg, bool showInputMsg) |
| { |
| var xmlDoc = new XmlDocument(); |
| _namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable); |
| _namespaceManager.AddNamespace("d", "urn:a"); |
| var sb = new StringBuilder(); |
| sb.AppendFormat("<dataValidation xmlns:d=\"urn:a\" type=\"{0}\" sqref=\"{1}\" ", validationType, address); |
| sb.AppendFormat(" showErrorMessage=\"{0}\" showInputMessage=\"{1}\">", showErrorMsg ? 1 : 0, showInputMsg ? 1 : 0); |
| sb.AppendFormat("<d:formula1>{0}</d:formula1>", formula1Value); |
| sb.Append("</dataValidation>"); |
| xmlDoc.LoadXml(sb.ToString()); |
| _dataValidationNode = xmlDoc.DocumentElement; |
| } |
| |
| protected void LoadXmlTestData(string address, string validationType, string formula1Value, string prompt, string promptTitle, string error, string errorTitle) |
| { |
| var xmlDoc = new XmlDocument(); |
| _namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable); |
| _namespaceManager.AddNamespace("d", "urn:a"); |
| var sb = new StringBuilder(); |
| sb.AppendFormat("<dataValidation xmlns:d=\"urn:a\" type=\"{0}\" sqref=\"{1}\"", validationType, address); |
| sb.AppendFormat(" prompt=\"{0}\" promptTitle=\"{1}\"", prompt, promptTitle); |
| sb.AppendFormat(" error=\"{0}\" errorTitle=\"{1}\">", error, errorTitle); |
| sb.AppendFormat("<d:formula1>{0}</d:formula1>", formula1Value); |
| sb.Append("</dataValidation>"); |
| xmlDoc.LoadXml(sb.ToString()); |
| _dataValidationNode = xmlDoc.DocumentElement; |
| } |
| |
| } |
| } |