### Question:
QualifierTranslationStage implements TranslationStage { @Override public void perform(TranslatorContext context) { QualifierTranslator translator = context.getQualifierTranslator(); Expression expression = context.getQuery().getQualifier(); ObjEntity entity = context.getMetadata().getObjEntity(); if (entity != null) { ClassDescriptor descriptor = context.getMetadata().getClassDescriptor(); Expression entityQualifier = descriptor.getEntityInheritanceTree().qualifierForEntityAndSubclasses(); if (entityQualifier != null) { expression = expression == null ? entityQualifier : expression.andExp(entityQualifier); } } Node qualifierNode = translator.translate(expression); context.setQualifierNode(qualifierNode); }  @Override void perform(TranslatorContext context);  }### Answer:
@Test public void perform() { QualifierTranslationStage stage = new QualifierTranslationStage(); stage.perform(context); assertNotNull(context.getQualifierNode()); Node op = context.getQualifierNode(); assertThat(op, instanceOf(OpExpressionNode.class)); assertEquals(">=", ((OpExpressionNode)op).getOp()); assertEquals(2, op.getChildrenCount()); assertThat(op.getChild(0), instanceOf(ColumnNode.class)); assertThat(op.getChild(1), instanceOf(ValueNode.class)); ColumnNode columnNode = (ColumnNode)op.getChild(0); ValueNode valueNode = (ValueNode)op.getChild(1); assertEquals("path", columnNode.getColumn()); assertEquals(10, valueNode.getValue()); }