public void TestWarnings() { var presenter = new MainPresenter(Form); var duplicateLabelFormLocation = _pathToValidForms + "DuplicateLabel.txt"; var formContent = File.ReadAllText(duplicateLabelFormLocation); var astForm = QLParser.ParseString(formContent); var messages = MainPresenter.ValidateForm(astForm); Assert.IsTrue(messages.Warnings.Any()); }
public void TestValidForms() { var presenter = new MainPresenter(Form); var validForms = Directory.GetFiles(_pathToValidForms); foreach (var validForm in validForms) { // Call checker and assert no errors var validFormContent = File.ReadAllText(validForm); var astForm = QLParser.ParseString(validFormContent); var messages = MainPresenter.ValidateForm(astForm); Assert.IsTrue(!messages.Errors.Any()); } }
public void TestNonParsableorms() { var nonParsableForms = Directory.GetFiles(_pathToNonParsableForms); foreach (var nonParsableForm in nonParsableForms) { // Call parser and assert that exception is thrown Exception expectedException = null; var nonParsableFormContent = File.ReadAllText(nonParsableForm); try { QLParser.ParseString(nonParsableFormContent); } catch (QLParseException exception) { expectedException = exception; } Assert.IsNotNull(expectedException); } }
private void ParseFile(string inputFile) { var fileContent = File.ReadAllText(inputFile); try { var astForm = QLParser.ParseString(fileContent); var messages = ValidateForm(astForm); if (AnyErrors(messages)) { _view.SetErrors(messages.Errors); return; } _executor = new QLExecutor(astForm); var qlsFileLocation = inputFile + ".qls"; IQuestionFormRenderer renderer = new QLRenderer(_executor); if (File.Exists(qlsFileLocation)) { var styleSheet = QLSParser.ParseString(File.ReadAllText(qlsFileLocation)); messages.Add(ValidateStyleSheet(styleSheet, astForm)); if (AnyErrors(messages)) { _view.SetErrors(messages.Errors); return; } renderer = new QLSRenderer(_executor, styleSheet); } _view.SetFormControl(renderer.Render()); _view.SetWarnings(messages.Warnings); } catch (QLParseException exception) { _view.SetErrors(exception.Exceptions); } }