| using System; | 
 | using System.Text; | 
 | using System.Collections.Generic; | 
 | using System.Linq; | 
 | using Microsoft.VisualStudio.TestTools.UnitTesting; | 
 | using Rhino.Mocks; | 
 | using OfficeOpenXml.FormulaParsing; | 
 | using OfficeOpenXml.FormulaParsing.LexicalAnalysis; | 
 | namespace EPPlusTest.FormulaParsing.LexicalAnalysis | 
 | { | 
 |     [TestClass] | 
 |     public class TokenFactoryTests | 
 |     { | 
 |         private ITokenFactory _tokenFactory; | 
 |         private INameValueProvider _nameValueProvider; | 
 |  | 
 |  | 
 |         [TestInitialize] | 
 |         public void Setup() | 
 |         { | 
 |             var context = ParsingContext.Create(); | 
 |             var excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>(); | 
 |             _nameValueProvider = MockRepository.GenerateStub<INameValueProvider>(); | 
 |             _tokenFactory = new TokenFactory(context.Configuration.FunctionRepository, _nameValueProvider); | 
 |         } | 
 |  | 
 |         [TestCleanup] | 
 |         public void Cleanup() | 
 |         { | 
 |        | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateAStringToken() | 
 |         { | 
 |             var input = "\""; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("\"", token.Value); | 
 |             Assert.AreEqual(TokenType.String, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreatePlusAsOperatorToken() | 
 |         { | 
 |             var input = "+"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("+", token.Value); | 
 |             Assert.AreEqual(TokenType.Operator, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateMinusAsOperatorToken() | 
 |         { | 
 |             var input = "-"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("-", token.Value); | 
 |             Assert.AreEqual(TokenType.Operator, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateMultiplyAsOperatorToken() | 
 |         { | 
 |             var input = "*"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("*", token.Value); | 
 |             Assert.AreEqual(TokenType.Operator, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateDivideAsOperatorToken() | 
 |         { | 
 |             var input = "/"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("/", token.Value); | 
 |             Assert.AreEqual(TokenType.Operator, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateEqualsAsOperatorToken() | 
 |         { | 
 |             var input = "="; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("=", token.Value); | 
 |             Assert.AreEqual(TokenType.Operator, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateIntegerAsIntegerToken() | 
 |         { | 
 |             var input = "23"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("23", token.Value); | 
 |             Assert.AreEqual(TokenType.Integer, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateBooleanAsBooleanToken() | 
 |         { | 
 |             var input = "true"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("true", token.Value); | 
 |             Assert.AreEqual(TokenType.Boolean, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ShouldCreateDecimalAsDecimalToken() | 
 |         { | 
 |             var input = "23.3"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |  | 
 |             Assert.AreEqual("23.3", token.Value); | 
 |             Assert.AreEqual(TokenType.Decimal, token.TokenType); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CreateShouldReadFunctionsFromFuncRepository() | 
 |         { | 
 |             var input = "Text"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |             Assert.AreEqual(TokenType.Function, token.TokenType); | 
 |             Assert.AreEqual("Text", token.Value); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CreateShouldCreateExcelAddressAsExcelAddressToken() | 
 |         { | 
 |             var input = "A1"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |             Assert.AreEqual(TokenType.ExcelAddress, token.TokenType); | 
 |             Assert.AreEqual("A1", token.Value); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CreateShouldCreateExcelRangeAsExcelAddressToken() | 
 |         { | 
 |             var input = "A1:B15"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |             Assert.AreEqual(TokenType.ExcelAddress, token.TokenType); | 
 |             Assert.AreEqual("A1:B15", token.Value); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CreateShouldCreateExcelRangeOnOtherSheetAsExcelAddressToken() | 
 |         { | 
 |             var input = "ws!A1:B15"; | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |             Assert.AreEqual(TokenType.ExcelAddress, token.TokenType); | 
 |             Assert.AreEqual("WS!A1:B15", token.Value); | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CreateShouldCreateNamedValueAsExcelAddressToken() | 
 |         { | 
 |             var input = "NamedValue"; | 
 |             _nameValueProvider.Stub(x => x.IsNamedValue("NamedValue","")).Return(true); | 
 |             _nameValueProvider.Stub(x => x.IsNamedValue("NamedValue", null)).Return(true); | 
 |             var token = _tokenFactory.Create(Enumerable.Empty<Token>(), input); | 
 |             Assert.AreEqual(TokenType.NameValue, token.TokenType); | 
 |             Assert.AreEqual("NamedValue", token.Value); | 
 |         } | 
 |     } | 
 | } |