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