public void TestOrWithEmptyQuery()
{
var emptyQuery = new QueryDocument();
var query = Query.Or(emptyQuery);
var expected = "{ }";
Assert.AreEqual(expected, query.ToJson());
query = Query.Or(emptyQuery, emptyQuery);
expected = "{ }";
Assert.AreEqual(expected, query.ToJson());
query = Query.Or(emptyQuery, Query.EQ("x", 1));
expected = "{ \"x\" : 1 }";
Assert.AreEqual(expected, query.ToJson());
query = Query.Or(Query.EQ("x", 1), emptyQuery);
expected = "{ \"x\" : 1 }";
Assert.AreEqual(expected, query.ToJson());
query = Query.Or(emptyQuery, Query.EQ("x", 1), emptyQuery);
expected = "{ \"x\" : 1 }";
Assert.AreEqual(expected, query.ToJson());
query = Query.Or(Query.EQ("x", 1), emptyQuery, Query.EQ("y", 2));
expected = "{ \"$or\" : [{ \"x\" : 1 }, { \"y\" : 2 }] }";
Assert.AreEqual(expected, query.ToJson());
}