### Question:
NotOperatorNode implements LogicalOperatorNode { public void setNode(ExpressionNode node) { this.node = node; } NotOperatorNode(ExpressionLocation location, String expression); ExpressionNode getNode(); void setNode(ExpressionNode node); @Override int getPriority(); @Override R accept(ExpressionNodeVisitor<R, P> visitor, P p); @Override ExpressionLocation getLocation(); @Override String getExpression(); @Override String toString();  }### Answer:
@Test public void test_true() { NotOperatorNode node = new NotOperatorNode(location, "!"); node.setNode(trueLiteral); ExpressionEvaluator evaluator = new ExpressionEvaluator(); EvaluationResult evaluationResult = evaluator.evaluate(node); assertFalse(evaluationResult.getBooleanValue()); }
@Test public void test_false() { NotOperatorNode node = new NotOperatorNode(location, "!"); node.setNode(falseLiteral); ExpressionEvaluator evaluator = new ExpressionEvaluator(); EvaluationResult evaluationResult = evaluator.evaluate(node); assertTrue(evaluationResult.getBooleanValue()); }
@Test public void test_null() { NotOperatorNode node = new NotOperatorNode(location, "!"); node.setNode(nullLiteral); ExpressionEvaluator evaluator = new ExpressionEvaluator(); EvaluationResult evaluationResult = evaluator.evaluate(node); assertTrue(evaluationResult.getBooleanValue()); }