Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }