| using System; | |
| using System.Text; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |
| using OfficeOpenXml.FormulaParsing.LexicalAnalysis; | |
| using OfficeOpenXml.FormulaParsing.Exceptions; | |
| namespace EPPlusTest.FormulaParsing.LexicalAnalysis | |
| { | |
| [TestClass] | |
| public class SyntacticAnalyzerTests | |
| { | |
| private ISyntacticAnalyzer _analyser; | |
| [TestInitialize] | |
| public void Setup() | |
| { | |
| _analyser = new SyntacticAnalyzer(); | |
| } | |
| [TestMethod] | |
| public void ShouldPassIfParenthesisAreWellformed() | |
| { | |
| var input = new List<Token> | |
| { | |
| new Token("(", TokenType.OpeningParenthesis), | |
| new Token("1", TokenType.Integer), | |
| new Token("+", TokenType.Operator), | |
| new Token("2", TokenType.Integer), | |
| new Token(")", TokenType.ClosingParenthesis) | |
| }; | |
| _analyser.Analyze(input); | |
| } | |
| [TestMethod, ExpectedException(typeof(FormatException))] | |
| public void ShouldThrowExceptionIfParenthesesAreNotWellformed() | |
| { | |
| var input = new List<Token> | |
| { | |
| new Token("(", TokenType.OpeningParenthesis), | |
| new Token("1", TokenType.Integer), | |
| new Token("+", TokenType.Operator), | |
| new Token("2", TokenType.Integer) | |
| }; | |
| _analyser.Analyze(input); | |
| } | |
| [TestMethod] | |
| public void ShouldPassIfStringIsWellformed() | |
| { | |
| var input = new List<Token> | |
| { | |
| new Token("'", TokenType.String), | |
| new Token("abc123", TokenType.StringContent), | |
| new Token("'", TokenType.String) | |
| }; | |
| _analyser.Analyze(input); | |
| } | |
| [TestMethod, ExpectedException(typeof(FormatException))] | |
| public void ShouldThrowExceptionIfStringHasNotClosing() | |
| { | |
| var input = new List<Token> | |
| { | |
| new Token("'", TokenType.String), | |
| new Token("abc123", TokenType.StringContent) | |
| }; | |
| _analyser.Analyze(input); | |
| } | |
| [TestMethod, ExpectedException(typeof(UnrecognizedTokenException))] | |
| public void ShouldThrowExceptionIfThereIsAnUnrecognizedToken() | |
| { | |
| var input = new List<Token> | |
| { | |
| new Token("abc123", TokenType.Unrecognized) | |
| }; | |
| _analyser.Analyze(input); | |
| } | |
| } | |
| } |