/// <summary> /// Gets the jade template. /// </summary> /// <returns>A new jade template.</returns> public ITemplate Parse(string jade) { jade.CheckNull("jade"); var lexer = new JadeLexer(jade); var rawTokens = new TokenStream(lexer.Tokenize()); var elementParser = new ElementParser(); var lines = rawTokens.GetLines(); DocType docType = null; var elements = new List <JElement>(); if (!lines.IsAtEnd()) { var firstLine = lines.Current; if (firstLine.Is(JadeTokenType.Doctype)) { firstLine.Consume(); firstLine.GetAny(TokenType.WhiteSpace); docType = new DocType(firstLine.GetAny(TokenType.Word)); lines.Consume(); } while (!lines.IsAtEnd()) { elementParser.ParseNextElement(lines).Do(elements.Add); } } return(new Template(docType, elements)); }
/// <summary> /// On a resource wrapper being parsed. /// </summary> protected void OnWrapperParsed(ElementParser parser, HttpConnection client, WebResource resource) { // get the element that is to be replaced var content = parser.Root.Build(); // replace text where required string replaceString = "{ReplaceText(" + resource.MimeType + ")}"; int replaceIndex = content.IndexOf(replaceString, StringComparison.Ordinal); while (replaceIndex >= 0) { var sections = content.Split(replaceIndex, 0, replaceString.Length); content = sections.ArgA + resource.GetString() + sections.ArgB; replaceIndex = content.IndexOf(replaceString, StringComparison.Ordinal); } // replace source strings where required replaceString = "{ReplaceSource(" + resource.MimeType + ")}"; replaceIndex = content.IndexOf(replaceString, StringComparison.Ordinal); while (replaceIndex >= 0) { var sections = content.Split(replaceIndex, 0, replaceString.Length); content = sections.ArgA + resource.Path + sections.ArgB; replaceIndex = content.IndexOf(replaceString, StringComparison.Ordinal); } // just start sending the resource client.Send(parser.Root, true, _defaultSendOptions); }
public ListParser(string theKeyword, ElementParser theChildParser, bool thisRequiresChildren, Func <string, Tree <Cell> > makeTreeCell) { myChildParser = theChildParser; myKeyword = theKeyword; IRequireChildren = thisRequiresChildren; this.makeTreeCell = makeTreeCell; }
private List <NovelGame> ReadGameTable(IHtmlDocument document) { var games = document.QuerySelectorAll("tr") .Skip(1) .Select(element => { var td = element.GetElementsByTagName("td"); NovelGame game = new NovelGame() { Id = ElementParser.ParseInt(td[0]), Title = td[1].TextContent, Kana = td[2].TextContent, SellDay = DateTime.Parse(td[3].TextContent), BrandId = ElementParser.ParseInt(td[4]), Median = ElementParser.ParseInt(td[5]), Stdev = ElementParser.ParseInt(td[6]), Getchu = ElementParser.ParseInt(td[14]), OHP = td[15].TextContent, Model = td[16].TextContent, Rating = ElementParser.ParseBool(td[18]), Gyutto = ElementParser.ParseInt(td[26]), Fanza = td[27].TextContent }; return(game); }); return(games.ToList()); }
private List <Brand> ReadBrandTable(IHtmlDocument document) { var brands = document.QuerySelectorAll("tr") .Skip(1) .Select(element => { var td = element.GetElementsByTagName("td"); Brand brand = new Brand() { Id = ElementParser.ParseInt(td[0]), Name = td[1].TextContent, Kana = td[2].TextContent, Maker = td[3].TextContent, MakerKana = td[4].TextContent, Url = td[5].TextContent, Kind = td[7].TextContent == "CORPORATION" ? MakerType.CORPORATION : MakerType.CIRCLE, Lost = ElementParser.ParseBool(td[8]), DirectLink = ElementParser.ParseBool(td[9]), Median = ElementParser.ParseInt(td[10]), Twitter = td[12].TextContent }; return(brand); }); return(brands.ToList()); }
private Int32?ParseNumerator(ParseContext context, XmlElement numerator, XmlToModelResult xmlToModelResult) { ElementParser parser = ParserRegistry.GetInstance().Get("INT.NONNEG"); ParseContext subContext = ParseContextImpl.Create("INT.NONNEG", typeof(Int32?), Ca.Infoway.Messagebuilder.Xml.ConformanceLevel .MANDATORY, Cardinality.Create("1"), context); return((Int32?)parser.Parse(subContext, Arrays.AsList((XmlNode)numerator), xmlToModelResult).BareValue); }
private PhysicalQuantity ParseDenominator(ParseContext context, XmlElement numerator, XmlToModelResult xmlToModelResult) { ElementParser parser = ParserRegistry.GetInstance().Get("PQ.TIME"); ParseContext subContext = ParseContextImpl.Create("PQ.TIME", typeof(PhysicalQuantity), Ca.Infoway.Messagebuilder.Xml.ConformanceLevel .MANDATORY, Cardinality.Create("1"), context); return((PhysicalQuantity)parser.Parse(subContext, Arrays.AsList((XmlNode)numerator), xmlToModelResult).BareValue); }
public GameDetailsPage(IWebDriver driver) { _driver = driver; pageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + @"GameDetails\GameDetails.json"); _addToCartBtn = pageElements["addToCartBtn"]; _gameName = pageElements["gameName"]; _screeShots = pageElements["screeShots"]; _quantityDdl = pageElements["quantityDdl"]; }
public HomePage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Home\\HomePage.json"); _searchBox = PageElements["searchBox"]; _searchbBtn = PageElements["searchbBtn"]; }
public ResturantSelectionPage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Orders\\ResturantSelectionPage.json"); _resturantSearchBox = PageElements["resturantSearchBox"]; _resturantList = PageElements["resturantList"]; }
private Interval <PhysicalQuantity> ParseDenominatorSk(ParseContext context, XmlElement numerator, XmlToModelResult xmlToModelResult ) { // TM - Unsure if SK is allowed to send in any kind of PQ, or only specific ones. Picked PQ.BASIC to cover most scenarios. ElementParser parser = ParserRegistry.GetInstance().Get("IVL<PQ.BASIC>"); ParseContext subContext = ParseContextImpl.Create("IVL<PQ.BASIC>", typeof(PhysicalQuantity), Ca.Infoway.Messagebuilder.Xml.ConformanceLevel .MANDATORY, Cardinality.Create("1"), context); return((Interval <PhysicalQuantity>)parser.Parse(subContext, Arrays.AsList((XmlNode)numerator), xmlToModelResult).BareValue); }
public OrderVerificationPage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Orders\\OrderVerificationPage.json"); _orderId = PageElements["orderId"]; _resturantName = PageElements["resturantName"]; }
public async Task Empty() { using var reader = Helper.CreateReader("<teste />"); var context = A.Fake <IParsingContext>(i => i.Strict()); var settings = A.Fake <IElementParserSettings>(i => i.Strict()); var parentContext = A.Fake <IParentParsingContext>(i => i.Strict()); var sut = new ElementParser(); await sut.ParseAsync(reader, context, parentContext, settings); }
private CSConvert(StreamReader _sr) { result.Clear(); List <string> readList = StreamParser.Parse(_sr); ElemRoot elem = ElementParser.Parse(readList); result.AddRange(elem.Collecting().ToList()); }
public void ShouldThrowAnInvalidOperationExceptionWhenWhenPasingTheNextElementAndTheTokenLineStreamIsEmpty() { var lines = new Mock <TokenLineStream>(Enumerable.Empty <TokenLine>()); lines.Setup(l => l.IsAtEnd()).Returns(true); var elementParser = new ElementParser(); elementParser.ParseNextElement(lines.Object); }
public PaymentConfirmationPage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Payment\\PaymentConfirmationPage.json"); _cancelBtn = PageElements["cancelBtn"]; _yesBtn = PageElements["yesBtn"]; _saveCookiesBtn = PageElements["saveCookiesBtn"]; _tryAgainBtn = PageElements["tryAgainBtn"]; }
public LoginPage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Login\\LoginPage.json"); _emailTextfield = PageElements["emailTextfield"]; _nextBtn = PageElements["nextBtn"]; _passwordTextField = PageElements["passwordTextField"]; _nextBtn2 = PageElements["nextBtn2"]; }
public void ShouldThrowAnUnexpectedTokenExceptionWhenPasingTheNextElementAndThereAreTokensRemaining() { var tokenLine = new Mock <TokenLine>(Enumerable.Empty <StringToken>()); tokenLine.Setup(l => l.Current).Returns(new StringToken(TokenType.QuotedString, 1, 1, 1, "hello")); var lines = new Mock <TokenLineStream>(Enumerable.Empty <TokenLine>()); lines.Setup(l => l.Current).Returns(tokenLine.Object); var elementParser = new ElementParser(); elementParser.ParseNextElement(lines.Object); }
public virtual void TestShouldFindRtoParsers() { ElementParser elementParser = ParserRegistry.GetInstance().Get("RTO<PQ.DRUG,PQ.TIME>"); Assert.IsNotNull(elementParser); Assert.IsTrue(elementParser is RtoPqPqElementParser, "RTO<PQ,PQ>"); elementParser = ParserRegistry.GetInstance().Get("RTO<PQ.DRUG,PQ.DRUG>"); Assert.IsNotNull(elementParser); Assert.IsTrue(elementParser is RtoPqPqElementParser, "RTO<PQ,PQ>"); elementParser = ParserRegistry.GetInstance().Get("RTO<MO.CAD,PQ.BASIC>"); Assert.IsNotNull(elementParser); Assert.IsTrue(elementParser is RtoMoPqElementParser, "RTO<MO,PQ>"); }
public void ShouldReturnNullWhenPasingTheNextElementAndThereAreNoElementsToParse() { var tokenLine = new Mock <TokenLine>(Enumerable.Empty <StringToken>()); tokenLine.Setup(l => l.IsAtEnd()).Returns(true); var lines = new Mock <TokenLineStream>(Enumerable.Empty <TokenLine>()); lines.Setup(l => l.Current).Returns(tokenLine.Object); var elementParser = new ElementParser(); var element = elementParser.ParseNextElement(lines.Object); Assert.IsNull(element); }
public void ShouldReturnAnElementWhenPasingTheNextElement() { var tokenLine = new Mock <TokenLine>((IEnumerable <StringToken>) new[] { new StringToken(TokenType.Word, 1, 1, 1, "hello") }); tokenLine.CallBase = true; var lines = new Mock <TokenLineStream>(Enumerable.Empty <TokenLine>()); lines.Setup(l => l.Current).Returns(tokenLine.Object); var elementParser = new ElementParser(); var element = elementParser.ParseNextElement(lines.Object); Assert.IsNotNull(element); Assert.IsTrue(tokenLine.Object.IsAtEnd()); }
public PaymentDetailsPage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Payment\\PaymentDetailsPage.json"); _idealMethodBtn = PageElements["idealMethodBtn"]; _cashMethodBtn = PageElements["cashMethodBtn"]; _addressText = PageElements["addressText"]; _townText = PageElements["townText"]; _surNameText = PageElements["surNameText"]; _emailAddressText = PageElements["emailAddressText"]; _phoneNumberText = PageElements["phoneNumberText"]; _buyNowBtn = PageElements["buyNowBtn"]; }
public void ShouldGetTheCurrentLineWhenPasingTheNextElement() { var tokenLine = new Mock <TokenLine>(Enumerable.Empty <StringToken>()); tokenLine.Setup(l => l.IsAtEnd()).Returns(true); var lines = new Mock <TokenLineStream>(Enumerable.Empty <TokenLine>()); lines.Setup(l => l.Current).Returns(tokenLine.Object); var elementParser = new ElementParser(); elementParser.ParseNextElement(lines.Object); Assert.IsTrue(tokenLine.Object.IsAtEnd()); lines.Verify(l => l.Current, Times.Once); }
private BareANY CreateType(ParseContext context, XmlElement element, XmlToModelResult parseResult) { string type = GetParameterizedType(context); ElementParser parser = ParserRegistry.GetInstance().Get(type); if (parser != null) { return(parser.Parse(ParseContextImpl.CreateWithConstraints(type, context), Arrays.AsList((XmlNode)element), parseResult)); } else { parseResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.DATA_TYPE_ERROR, System.String.Format("Cannot find a parser for type {0}" , type), element)); return(null); } }
public void ShouldConsumeTheFirstLineWhenPasingTheNextElementAndThereAreNoMoreTokensInTheLine() { var tokenLine = new Mock <TokenLine>((IEnumerable <StringToken>) new[] { new StringToken(TokenType.Word, 1, 1, 1, "hello") }); tokenLine.CallBase = true; var lines = new Mock <TokenLineStream>(Enumerable.Empty <TokenLine>()); lines.Setup(l => l.Current).Returns(tokenLine.Object); var elementParser = new ElementParser(); elementParser.ParseNextElement(lines.Object); Assert.IsTrue(tokenLine.Object.IsAtEnd()); lines.Verify(l => l.Consume(), Times.Once); }
public HomePage(IWebDriver driver) { pageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + @"Home\Home.json"); _gameBtn = pageElements["gameBtn"]; _rightSliderController = pageElements["rightSliderController"]; _leftSliderController = pageElements["leftSliderController"]; _slider = pageElements["slider"]; _gameItemsList = pageElements["gameItemsList"]; _shoppingMenuItem = pageElements["shoppingMenuItem"]; _shoppingBagItemText = pageElements["shoppingBagItemText"]; lastitemInGameList = 0; _addToCartItem = pageElements["addToCartItem"]; gameName = string.Empty; driver = this.driver; }
// only checking II constraints for now /// <exception cref="Ca.Infoway.Messagebuilder.Marshalling.HL7.XmlToModelTransformationException"></exception> public override BareANY Parse(ParseContext context, IList <XmlNode> nodes, XmlToModelResult xmlToModelResult) { string subType = GetSubType(context); ICollection <BareANY> list = GetCollectionType(context); ValidateCardinality(context, nodes, xmlToModelResult); foreach (XmlNode node in nodes) { string actualType = DetermineActualType(node, subType, context.IsCda(), xmlToModelResult); ElementParser parser = this.parserRegistry.Get(actualType); if (parser != null) { BareANY result = parser.Parse(ParseContextImpl.Create(actualType, GetSubTypeAsModelType(context), context), ToList(node), xmlToModelResult); // constraints are *not* passed down with collections if (result != null) { if (!StringUtils.Equals(subType, actualType)) { result.DataType = StandardDataType.GetByTypeName(actualType); } if (list.Contains(result)) { ResultAlreadyExistsInCollection(result, (XmlElement)node, xmlToModelResult); } list.Add(result); } } else { xmlToModelResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.INTERNAL_ERROR, "No parser type found for " + actualType, (XmlElement )node)); } } HandleConstraints(subType, list, context.GetConstraints(), nodes, xmlToModelResult); BareANY wrapResult = null; try { wrapResult = WrapWithHl7DataType(context.Type, subType, list, context); } catch (MarshallingException e) { xmlToModelResult.AddHl7Error(new Hl7Error(Hl7ErrorCode.INTERNAL_ERROR, e.Message, (string)null)); } return(wrapResult); }
public OrderCreationPage(IWebDriver driver) { this.driver = driver; AutomatedActions.NavigationActions.InitBrowser(driver); PageElements = ElementParser.Initialize_Page_Elements(ApplicationConfigs.ObjectRepository + "Orders\\OrderCreationPage.json"); _mealsList = PageElements["mealsList"]; _mealNameList = PageElements["mealNameList"]; _addOneBtn = PageElements["addOneBtn"]; _drinkDdl = PageElements["drinkDdl"]; _addMainDishBtn = PageElements["addMainDishBtn"]; _basketBtn = PageElements["basketBtn"]; _commentBtn = PageElements["commentBtn"]; _commentText = PageElements["commentText"]; _OrderBtn = PageElements["OrderBtn"]; }
public async Task AggregateNodeParser() { using var reader = Helper.CreateReader("<t><a /></t>"); var parentContext = new FakeParentParsingContext(); var context = A.Fake <IParsingContext>(i => i.Strict()); var node = A.Dummy <INode>(); var nodeParser = new FakeNodeParser("a", node); var sut = new ElementParser(); var settings = FakeSettings(new FakeAggregatedNodeParser(sut, nodeParser)); await sut.ParseAsync(reader, context, parentContext, settings); parentContext.ShouldContainSingle(node); }
/// <exception cref="Ca.Infoway.Messagebuilder.Marshalling.HL7.XmlToModelTransformationException"></exception> private void WriteAttribute(BeanWrapper bean, Hl7Source source, IList <XmlNode> nodes, Relationship relationship, string traversalName ) { if (relationship.Structural) { source.GetResult().AddHl7Error(new Hl7Error(Hl7ErrorCode.INTERNAL_ERROR, "Data found for relationship as an element but should have been an attribute. " + (nodes.IsEmpty() ? ("(" + relationship.Name + ")") : XmlDescriber.DescribePath(nodes[0])), CollUtils.IsEmpty(nodes) ? null : (XmlElement)nodes[0])); } string type = DetermineType(nodes, relationship, source, source.GetResult()); ElementParser parser = (source.IsR2() ? ParserR2Registry.GetInstance().Get(type) : ParserRegistry.GetInstance().Get(type) ); if (parser != null) { try { ConstrainedDatatype constraints = source.GetService().GetConstraints(source.GetVersion(), relationship.ConstrainedType); ParseContextImpl context = new ParseContextImpl(relationship, constraints, source.GetVersion(), source.GetDateTimeZone(), source.GetDateTimeTimeZone(), CodeTypeRegistry.GetInstance(), source.IsCda()); BareANY @object = parser.Parse(context, nodes, source.GetResult()); ChangeDatatypeIfNecessary(type, relationship, @object); if (relationship.HasFixedValue()) { ValidateNonstructuralFixedValue(relationship, @object, source, nodes); } else { // fixed means nothing to write to bean bean.Write(relationship, @object); } } catch (InvalidCastException e) { source.GetResult().AddHl7Error(new Hl7Error(Hl7ErrorCode.INTERNAL_ERROR, "Can't parse relationship name=" + relationship. Name + ", traversalName=" + traversalName + " [" + e.Message + "]", CollUtils.IsEmpty(nodes) ? null : (XmlElement)nodes[ 0])); } } else { source.GetResult().AddHl7Error(new Hl7Error(Hl7ErrorCode.INTERNAL_ERROR, "No parser for type \"" + type + "\". " + (nodes .IsEmpty() ? ("(" + relationship.Name + ")") : XmlDescriber.DescribePath(nodes[0])), CollUtils.IsEmpty(nodes) ? null : ( XmlElement)nodes[0])); } }
public ElementParserTest() { _parser = new ElementParser(); }
public ListParser(string theKeyword, ElementParser theChildParser, bool thisRequiresChildren) { myChildParser = theChildParser; myKeyword = theKeyword; IRequireChildren = thisRequiresChildren; }
public ListParser(string theKeyword, ElementParser theChildParser, bool thisRequiresChildren, Func<string, Tree<Cell>> makeTreeCell) { myChildParser = theChildParser; myKeyword = theKeyword; IRequireChildren = thisRequiresChildren; this.makeTreeCell = makeTreeCell; }