public void ParseTableauInputThrowsOnEmptyUnparsedInput() { var formulaParser = new Mock <IFormulaFactory>(); formulaParser.Setup(t => t.Parse(It.IsAny <string>())).Returns(new VariableFormula('m')); var conversionService = new ConversionService(formulaParser.Object); conversionService.ParseTableauInput(new UnparsedTableauInput()); }
public void CreatesErrorResponseOnParserException() { var formulaParser = new Mock <IFormulaFactory>(); formulaParser.Setup(t => t.Parse(It.IsAny <string>())).Throws(new ParseException("...")); var conversionService = new ConversionService(formulaParser.Object); var(tableauInput, errorResponse) = conversionService.ParseTableauInput(_inputSingleFormula); Assert.IsTrue(errorResponse.HasErrorResponse()); Assert.IsTrue(errorResponse.FormulaParseRequests.Count == 1); }
public void DuplicitRawFormulasAllowed() { var formulaParser = new Mock <IFormulaFactory>(); formulaParser.SetupSequence(t => t.Parse(It.IsAny <string>())) .Returns(new VariableFormula('n')) .Returns(new VariableFormula('n')); var conversionService = new ConversionService(formulaParser.Object); var(tableauInput, errorResponse) = conversionService.ParseTableauInput(_inputDuplicitFormulas); formulaParser.Verify(f => f.Parse(It.IsAny <string>()), Times.Exactly(2)); }
public void ShouldFindError() { var formulaParser = new Mock <IFormulaFactory>(); formulaParser.SetupSequence(t => t.Parse(It.IsAny <string>())) .Returns(new VariableFormula('n')) .Throws(new ParseException("...")); var conversionService = new ConversionService(formulaParser.Object); var(tableauInput, errorResponse) = conversionService.ParseTableauInput(_inputTwoFormulas); Assert.IsTrue(errorResponse.HasErrorResponse()); Assert.IsTrue(errorResponse.FormulaParseRequests.Count == 2); }
public void ParserCorrectlyToTableauInput() { var formulaParser = new Mock <IFormulaFactory>(); formulaParser.SetupSequence(t => t.Parse(It.IsAny <string>())) .Returns(new VariableFormula('a')) .Returns(new VariableFormula('b')); var conversionService = new ConversionService(formulaParser.Object); var(tableauInput, errorResponse) = conversionService.ParseTableauInput(_inputTwoFormulas); formulaParser.Verify(f => f.Parse(It.IsAny <string>()), Times.Exactly(2)); Assert.AreEqual(new VariableFormula('a'), tableauInput.TableauRoot.Formula); Assert.AreEqual(new VariableFormula('b'), tableauInput.TheoryAxioms[0].Formula); Assert.AreEqual(tableauInput.TableauRoot.TruthLabel, _inputTwoFormulas.FormulaParseRequests[0].UnparsedTableauNode.TruthLabel); Assert.AreEqual(tableauInput.TheoryAxioms[0].TruthLabel, _inputTwoFormulas.FormulaParseRequests[1].UnparsedTableauNode.TruthLabel); Assert.IsTrue(!errorResponse.HasErrorResponse()); }