blob: 9ce60fd56ecdb66d1e9e34f6dd55723b1f512bb8 [file] [log] [blame]
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));
}
}
}