public override State Handle(QueryParser parser, QueryTokenizer tokenizer, Query query) { if (Explain) { Console.WriteLine("Entering DESCRIBE state"); } do { if (Explain) { Console.WriteLine(" tokenizer.TokenText is " + tokenizer.TokenText + " (" + tokenizer.Type + ")"); } switch (tokenizer.Type) { case QueryTokenizer.TokenType.KeywordWhere: if (tokenizer.MoveNext()) { if (tokenizer.TokenText.Equals("{")) { return(new WhereState()); } } break; case QueryTokenizer.TokenType.QuotedIRIRef: query.AddDescribeTerm(new UriRef(tokenizer.TokenText)); break; case QueryTokenizer.TokenType.Variable: Variable var = new Variable(tokenizer.TokenText); query.AddVariable(var); query.AddDescribeTerm(var); break; default: break; } } while (tokenizer.MoveNext()); return(this); }
public void GetHashCodeUsesDescribeTerms() { Query query1 = new Query(); Query query2 = new Query(); Query query3 = new Query(); query1.AddDescribeTerm(new Variable("var")); query2.AddDescribeTerm(new Variable("var")); query3.AddDescribeTerm(new Variable("other")); Assert.IsTrue(query1.GetHashCode() == query2.GetHashCode(), "Query1 should have same hash code as query2"); Assert.IsTrue(query1.GetHashCode() != query3.GetHashCode(), "Query1 should not have same hash code as query2"); }
public void EqualsComparesDescribeTerms() { Query query1 = new Query(); Query query2 = new Query(); Query query3 = new Query(); query1.AddDescribeTerm(new Variable("var")); query2.AddDescribeTerm(new Variable("var")); query3.AddDescribeTerm(new Variable("other")); Assert.IsTrue(query1.Equals(query2), "Query1 should equal query2"); Assert.IsTrue(!query1.Equals(query3), "Query1 should not equal query3"); }