| using System; |
| using System.Diagnostics; |
| using System.IO; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml; |
| using OfficeOpenXml.FormulaParsing.Logging; |
| |
| namespace EPPlusTest.FormulaParsing.IntegrationTests.BuiltInFunctions |
| { |
| [TestClass] |
| public class TextFunctionsTests |
| { |
| [TestMethod] |
| public void HyperlinkShouldHandleReference() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "HYPERLINK(B1)"; |
| sheet.Cells["B1"].Value = "http://epplus.codeplex.com"; |
| sheet.Calculate(); |
| Assert.AreEqual("http://epplus.codeplex.com", sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void HyperlinkShouldHandleReference2() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "HYPERLINK(B1, B2)"; |
| sheet.Cells["B1"].Value = "http://epplus.codeplex.com"; |
| sheet.Cells["B2"].Value = "Epplus"; |
| sheet.Calculate(); |
| Assert.AreEqual("Epplus", sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void HyperlinkShouldHandleText() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "HYPERLINK(\"testing\")"; |
| sheet.Calculate(); |
| Assert.AreEqual("testing", sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void CharShouldReturnCharValOfNumber() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "Char(A2)"; |
| sheet.Cells["A2"].Value = 55; |
| sheet.Calculate(); |
| Assert.AreEqual("7", sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void FixedShouldHaveCorrectDefaultValues() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "Fixed(A2)"; |
| sheet.Cells["A2"].Value = 1234.5678; |
| sheet.Calculate(); |
| Assert.AreEqual(1234.5678.ToString("N2"), sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void FixedShouldSetCorrectNumberOfDecimals() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "Fixed(A2,4)"; |
| sheet.Cells["A2"].Value = 1234.56789; |
| sheet.Calculate(); |
| Assert.AreEqual(1234.56789.ToString("N4"), sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void FixedShouldSetNoCommas() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "Fixed(A2,4,true)"; |
| sheet.Cells["A2"].Value = 1234.56789; |
| sheet.Calculate(); |
| Assert.AreEqual(1234.56789.ToString("F4"), sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void FixedShouldHandleNegativeDecimals() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "Fixed(A2,-1,true)"; |
| sheet.Cells["A2"].Value = 1234.56789; |
| sheet.Calculate(); |
| Assert.AreEqual(1230.ToString("F0"), sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod] |
| public void ConcatenateShouldHandleRange() |
| { |
| using (var pck = new ExcelPackage(new MemoryStream())) |
| { |
| var sheet = pck.Workbook.Worksheets.Add("test"); |
| sheet.Cells["A1"].Formula = "Concatenate(1,A2)"; |
| sheet.Cells["A2"].Value = "hello"; |
| sheet.Calculate(); |
| Assert.AreEqual("1hello", sheet.Cells["A1"].Value); |
| } |
| } |
| |
| [TestMethod, Ignore] |
| public void Logtest1() |
| { |
| var sw = new Stopwatch(); |
| sw.Start(); |
| using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\denis.xlsx"))) |
| { |
| var logger = LoggerFactory.CreateTextFileLogger(new FileInfo(@"c:\temp\log1.txt")); |
| pck.Workbook.FormulaParser.Configure(x => x.AttachLogger(logger)); |
| pck.Workbook.Calculate(); |
| // |
| } |
| sw.Stop(); |
| var elapsed = sw.Elapsed; |
| Console.WriteLine(string.Format("{0} seconds", elapsed.TotalSeconds)); |
| } |
| } |
| } |