public ActionResult <OptionSet> ParseOptionsSet(ParseOptionsSetRequest request)
        {
            Validate.NotNull(request, nameof(request));
            Validate.NotNull(request.Data, nameof(request.Data));

            OptionSetParser parser = null;

            if (!string.IsNullOrWhiteSpace(request.Version))
            {
                parser = OptionSetParser.Create(request.Version);
            }

            if (parser == null)
            {
                using (var stringReader = new StringReader(request.Data))
                    using (var xmlTextReader = new XmlTextReader(stringReader))
                    {
                        parser = OptionSetParser.Create(xmlTextReader);
                    }
            }

            var validator = new DefaultOptionSetValidator();
            var result    = parser.Parse(request.Data, validator);

            return(Ok(result));
        }
示例#2
0
        public void CreateAsVersion_WhenWePassEmptyString_ThrowException()
        {
            var ex = Assert.Throws <InvalidOperationException>(() =>
            {
                OptionSetParser.CreateAsVersion("");
            });

            Assert.That(ex.Message, Is.EqualTo($"Can't create '{nameof(OptionSetParser)}' of given version ''."));
        }
示例#3
0
        public void Create_WhenWePassStreamNull_ThrowException()
        {
            void Delegate()
            {
                OptionSetParser.Create((Stream)null);
            }

            AssertEx.ThrowsArgumentNullException(Delegate, "stream");
        }
示例#4
0
        public void Create_WhenWePassReaderNull_ThrowException()
        {
            void Delegate()
            {
                OptionSetParser.Create((XmlTextReader)null);
            }

            AssertEx.ThrowsArgumentNullException(Delegate, "reader");
        }
示例#5
0
        public void Create_WhenWePassStringNull_ThrowException()
        {
            void Delegate()
            {
                OptionSetParser.Create((string)null);
            }

            AssertEx.ThrowsArgumentNullException(Delegate, "version");
        }