public void result_is_false_when_no_parent() { var childGameObject = new GameObject(); var mockSubQuery = new Mock <IQuery>(MockBehavior.Strict); var testObject = new AncestorQuery(mockSubQuery.Object); Assert.False(testObject.Match(childGameObject)); }
/// <summary> /// Parse a stack selector. /// </summary> public IQuery descendents_selector() { bool isRoot = tokenizer.Token == QueryTokens.Slash; if (isRoot) { tokenizer.Advance(); } var query = compound_selector(); if (isRoot) { var rootQuery = new RootQuery(); query = new AndQuery(query, rootQuery); } if (tokenizer.AtEnd) { // Exhausted tokens, return single filter. return(query); } do { if (tokenizer.Token == QueryTokens.Slash) { query = new ParentQuery(query); } else if (tokenizer.Token == QueryTokens.GreaterThan) { query = new AncestorQuery(query); } else { throw new ApplicationException("Unexpected token: " + tokenizer.TokenString); } tokenizer.Advance(); // Chew up the separator. var otherQuery = compound_selector(); query = new AndQuery(otherQuery, query); } while (!tokenizer.AtEnd); return(query); }
public void result_is_true_when_parent_matches_sub_query() { var parentGameObject = new GameObject(); var childGameObject = new GameObject(); childGameObject.transform.parent = parentGameObject.transform; var mockSubQuery = new Mock <IQuery>(); mockSubQuery .Setup(m => m.Match(parentGameObject)) .Returns(true); var testObject = new AncestorQuery(mockSubQuery.Object); Assert.True(testObject.Match(childGameObject)); }
public void result_is_false_when_ancestor_doesnt_match_sub_query() { var childGameObject = new GameObject(); var parentGameObject = new GameObject(); childGameObject.transform.parent = parentGameObject.transform; var ancestorGameObject = new GameObject(); parentGameObject.transform.parent = ancestorGameObject.transform; var mockSubQuery = new Mock <IQuery>(); mockSubQuery .Setup(m => m.Match(parentGameObject)) .Returns(false); mockSubQuery .Setup(m => m.Match(ancestorGameObject)) .Returns(false); var testObject = new AncestorQuery(mockSubQuery.Object); Assert.False(testObject.Match(childGameObject)); }