Exemple #1
0
        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());
        }
Exemple #2
0
        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());
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }