| using System; | |
| using System.Text; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |
| using OfficeOpenXml.FormulaParsing; | |
| using Rhino.Mocks; | |
| namespace EPPlusTest.FormulaParsing.IntegrationTests.BuiltInFunctions | |
| { | |
| [TestClass] | |
| public class StringFunctionsTests : FormulaParserTestBase | |
| { | |
| private ExcelDataProvider _provider; | |
| [TestInitialize] | |
| public void Setup() | |
| { | |
| _provider = MockRepository.GenerateStub<ExcelDataProvider>(); | |
| _parser = new FormulaParser(_provider); | |
| } | |
| [TestMethod] | |
| public void TextShouldConcatenateWithNextExpression() | |
| { | |
| _provider.Stub(x => x.GetFormat(23.5, "$0.00")).Return("$23.50"); | |
| var result = _parser.Parse("TEXT(23.5,\"$0.00\") & \" per hour\""); | |
| Assert.AreEqual("$23.50 per hour", result); | |
| } | |
| [TestMethod] | |
| public void LenShouldAddLengthUsingSuppliedOperator() | |
| { | |
| var result = _parser.Parse("Len(\"abc\") + 2"); | |
| Assert.AreEqual(5d, result); | |
| } | |
| [TestMethod] | |
| public void LowerShouldReturnALowerCaseString() | |
| { | |
| var result = _parser.Parse("Lower(\"ABC\")"); | |
| Assert.AreEqual("abc", result); | |
| } | |
| [TestMethod] | |
| public void UpperShouldReturnAnUpperCaseString() | |
| { | |
| var result = _parser.Parse("Upper(\"abc\")"); | |
| Assert.AreEqual("ABC", result); | |
| } | |
| [TestMethod] | |
| public void LeftShouldReturnSubstringFromLeft() | |
| { | |
| var result = _parser.Parse("Left(\"abacd\", 2)"); | |
| Assert.AreEqual("ab", result); | |
| } | |
| [TestMethod] | |
| public void RightShouldReturnSubstringFromRight() | |
| { | |
| var result = _parser.Parse("RIGHT(\"abacd\", 2)"); | |
| Assert.AreEqual("cd", result); | |
| } | |
| [TestMethod] | |
| public void MidShouldReturnSubstringAccordingToParams() | |
| { | |
| var result = _parser.Parse("Mid(\"abacd\", 2, 2)"); | |
| Assert.AreEqual("ba", result); | |
| } | |
| [TestMethod] | |
| public void ReplaceShouldReturnSubstringAccordingToParams() | |
| { | |
| var result = _parser.Parse("Replace(\"testar\", 3, 3, \"hej\")"); | |
| Assert.AreEqual("tehejr", result); | |
| } | |
| [TestMethod] | |
| public void SubstituteShouldReturnSubstringAccordingToParams() | |
| { | |
| var result = _parser.Parse("Substitute(\"testar testar\", \"es\", \"xx\")"); | |
| Assert.AreEqual("txxtar txxtar", result); | |
| } | |
| [TestMethod] | |
| public void ConcatenateShouldReturnAccordingToParams() | |
| { | |
| var result = _parser.Parse("CONCATENATE(\"One\", \"Two\", \"Three\")"); | |
| Assert.AreEqual("OneTwoThree", result); | |
| } | |
| [TestMethod] | |
| public void TShouldReturnText() | |
| { | |
| var result = _parser.Parse("T(\"One\")"); | |
| Assert.AreEqual("One", result); | |
| } | |
| [TestMethod] | |
| public void ReptShouldConcatenate() | |
| { | |
| var result = _parser.Parse("REPT(\"*\",3)"); | |
| Assert.AreEqual("***", result); | |
| } | |
| } | |
| } |