public function testQueryWithCriteria()
 {
     $query = new Query(50, 41, Expr::value(10), ['name' => 'ASC'], ['comments_counter']);
     $modified = $query->withCriteria($exp = Expr::value(100));
     $this->assertNotSame($query, $modified, 'Query meant to be immutable, a new copy suppose to be created when Query modified');
     $this->assertEquals($query->getOffset(), $modified->getOffset());
     $this->assertEquals($query->getSize(), $modified->getSize());
     $this->assertEquals($query->getInclude(), $modified->getInclude());
     $this->assertSame($exp, $modified->getCriteria());
     $this->assertEquals($query->getOrder(), $modified->getOrder());
 }